Не удалось увидеть вкладку Tab в библиотеке поддержки дизайна TabLayout
Я использую библиотеку материалов и создаю макет с помощью CoordinatorLayout
, AppBarLayout, RecyclerView
и TabLayout
.
Моя проблема в том, что я не могу увидеть индикатор вкладки в TabLayout
.Below - это мой xml файл, который я использую в AppCompactActivity
.
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coodinate_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/btn_next_screen">
<android.support.v7.widget.RecyclerView
android:id="@+id/list_recycle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="30dp"
android:background="@color/white"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
<android.support.design.widget.AppBarLayout
android:id="@+id/abar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_home"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"
>
</android.support.v7.widget.Toolbar>
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabBackground="@color/tab_bg"
app:tabIndicatorColor="@color/tab_indicator"
app:tabIndicatorHeight="5dp"
app:tabMode="fixed"
></android.support.design.widget.TabLayout>
</android.support.design.widget.AppBarLayout>
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="15dp"
app:layout_anchor="@+id/list_recycle"
app:layout_anchorGravity="bottom|right"
android:id="@+id/floatin_ab_home"
app:fabSize="mini"
android:src="@drawable/ic_content_add"
/>
</android.support.design.widget.CoordinatorLayout>
Ниже показан экран, который не показывает индикатор Tab, поэтому любой может узнать, чего я не вижу.
![Screen which missing Tab Indicator]()
Ответы
Ответ 1
Я думаю, что это ошибка в библиотеке поддержки дизайна. что
Когда вы одновременно применяете оба свойства
app:tabBackground="@color/tab_bg"
app:tabIndicatorColor="@color/tab_indicator"
цвет фона перекрывает индикатор вкладки . что индикатор табуляции не отображается.
Если вы удалите свойство цвета tabBackground, вы увидите индикатор.
[Обновить 25-06-2015]
Как я сказал , это ошибка в библиотеке поддержки дизайна. Я сообщил об этом в источник ошибок для Android. здесь приведено refrence https://code.google.com/p/android/issues/detail?id=176540.
Таким образом, для этого является проблема FutureRelease, поэтому исправлена ошибка. И это придет в будущей библиотеке.
[Обновить 20-07-2015]
Исправлена ошибка и была выпущена в версии 22.2.1. вы также можете проверить его по ссылке выше.
Ответ 2
Вы можете использовать ниже методы
1 Изменение xml
app: tabIndicatorColor = "" установить цвет индикатора
2 создание темы костюма
<style name="AppTheme.TabStyle" parent="Widget.Design.TabLayout">
<item name="tabTextAppearance">@style/AppTheme.TextStyle</item>
<item name="tabTextColor">@color/primaryDark</item>
<item name="tabSelectedTextColor">@color/white</item>
<item name="tabIndicatorColor">@color/primaryDark</item>
<item name="tabIndicatorHeight">3dp</item>
<item name="android:background">?attr/colorPrimary</item>
</style>
<style name="AppTheme.TextStyle" parent="TextAppearance.Design.Tab">
<item name="android:textSize">14sp</item>
<item name="textAllCaps">true</item>
</style>
установить тему в своем вкладке
Ответ 3
Вы используете RecyclerView в качестве основного контента, используйте ViewPager, содержащий RecyclerView, и убедитесь, что вы предоставили атрибут viewpage app:layout_behavior="@string/appbar_scrolling_view_behavior"
Ответ 4
Используйте app1: tabIndicatorColor вместо приложения: tabIndicatorColor. Он автоматически создаст пространство имен app1 при использовании этого атрибута.
Ответ 5
Я только что исправил эту ошибку, задав цвет фона программно
tabLayout.setBackgroundColor(getResources().getColor(R.color.primary));
или в xml
android:background="@color/primary"
Но я не знаю, есть ли какие-либо проблемы при установке цвета фона таким образом
Ответ 6
Здесь вы идете..:)
Изменить ваш атрибут
Приложение: tabBackground= "@цвет/tab_bg"
to
Android: фон= "@цвет/tab_bg"
ваш окончательный код..
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/tab_bg"
app:tabIndicatorColor="@color/tab_indicator"
app:tabIndicatorHeight="5dp"
app:tabMode="fixed">
</android.support.design.widget.TabLayout>