No se puede ver Tab Indicator en TabLayout design support library
Estoy usando la biblioteca de diseño de material y la creación de diseño utilizando CoordinatorLayout
, AppBarLayout, RecyclerView
y TabLayout
.
Mi problema es que no puedo ver Tab indicador en Tablayout
.Below es mi archivo xml que estoy utilizando en AppCompactActivity
.
- ¿Cómo puedo obtener la barra de búsqueda de Google Now en mi aplicación?
- Animación de la barra de herramientas Android AppCompat-v21
- Contactos con categorías: grupos, favoritos y alfabetos
- MaterialBetterSpinner FloatingLabel de forma dinámica o programática
- Android.support.design.widget.FloatingActionButton la implantación de FAB reduce el tamaño de la imagen
<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>
A continuación se muestra la pantalla que no muestra el indicador Tab, así que cualquiera puede saber lo que me falta.
- Dos botones de acción flotante al lado del otro
- Cómo hacer que Google Play Store App como el menú de acciones de búsqueda y el diseño del diálogo de búsqueda
- ¿Cómo alinear widget.TextInputLayout con la vista de MaterialSpinner?
- Snackbar oculta la acción flotante al presionar el botón de acción en ella
- Android Design Navigation Drawer - ¿Cómo agregar un conmutador en el navegador xml?
- La expansión CollapsingToolbarLayout no funciona con RecyclerView
- Establecer el logotipo de la barra de herramientas en XML
- RippleDrawable creada programaticamente se ve diferente de su contraparte xml
Creo que es un error en la biblioteca de soporte de diseño . Que al aplicar ambas propiedades al mismo tiempo
app:tabBackground="@color/tab_bg" app:tabIndicatorColor="@color/tab_indicator"
El color de fondo se superpone al indicador de tabulación . Es por eso que el indicador de pestaña no es visible.
Si elimina la propiedad de color tabBackground, puede ver el indicador.
[Actualización el 25-06-2015]
Como he dicho es un error en la biblioteca de soporte de diseño . Lo informé a la fuente de error de Android. Aquí está el refrence https://code.google.com/p/android/issues/detail?id=176540 .
Así que el estado de este problema es FutureRelease por lo que el error está solucionado. Y vendrá en la futura biblioteca.
[Actualización 20-07-2015]
El error se soluciona y se libera en v 22.2.1. También puede comprobarlo en el enlace anterior.
Puede utilizar los siguientes métodos
1 Cambio en la aplicación xml: tabIndicatorColor = "" establece el color del indicador
2 la creación de tema de disfraces
<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>
Fije el tema en su Tablayout
Usted está usando RecyclerView como el contenido principal, use ViewPager que contiene RecyclerView y asegúrese de dar la app:layout_behavior="@string/appbar_scrolling_view_behavior"
atributos app:layout_behavior="@string/appbar_scrolling_view_behavior"
Utilice app1: tabIndicatorColor en lugar de app: tabIndicatorColor. Se creará automáticamente la app1 de espacio de nombres cuando utilice el atributo.
Acabo de arreglar este color de fondo de conjunto de errores mediante programación
tabLayout.setBackgroundColor(getResources().getColor(R.color.primary));
O en xml
android:background="@color/primary"
Pero no sé si hay algún problema cuando se establece el color de fondo de esta manera
Aqui tienes.. 🙂
Cambiar el atributo
App: tabBackground = "@ color / tab_bg"
a
Android: background = "@ color / tab_bg"
Tu codigo final
<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>