¿Cómo se utiliza TabItem cuando se coloca en el XML de la disposición?

La documentación TabLayout da un ejemplo de anidar TabItem directamente dentro de TabLayout así:

 <android.support.design.widget.TabLayout android:layout_height="wrap_content" android:layout_width="match_parent"> <android.support.design.widget.TabItem android:text="@string/tab_text"/> <android.support.design.widget.TabItem android:icon="@drawable/ic_android"/> </android.support.design.widget.TabLayout> 

Pero no da ningún ejemplo de cómo esto podría ser utilizado en la práctica, y la documentación para TabItem dice:

Esta vista no se agrega realmente a TabLayout, es apenas un maniquí que permite fijar el texto de un artículo de la lengüeta, el icono y la disposición de encargo.

¿Para qué sirve TabItem ? Después de una extensa búsqueda de Google, no puedo encontrar un solo ejemplo de alguien que defina TabItems en XML. ¿Hay alguna manera de configurar una actividad tabulada usando TabItem en el archivo de recursos como se muestra arriba?

Esto parece ser una adición relativamente reciente a la biblioteca de diseño, aparentemente agregada en la versión 23.2.0, aunque no se menciona en el historial de revisiones . Su funcionalidad es bastante básica, y los únicos atributos que parece utilizar son los tres dados en sus documentos : text , icon y layout .

Desde la prueba, parece que es básicamente un acceso directo XML para crear una nueva Tab , y establecer su texto, icono y View personalizada, como se haría normalmente en el código. Cuando dice "Esta vista no se agrega realmente a TabLayout", creo que significa sugerir que no es una View en el sentido normal, en que no se puede establecer ningún tipo de atributo de diseño estándar en él, como layout_width o de background . Simplemente sirve para hacer que TabLayout cree una nueva Tab para cada TabItem y llame a setText() , setIcon() y setCustomView() consecuencia.

Por ejemplo, para agregar una Tab en el código, normalmente haríamos algo como esto:

 TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout); // Add Tab TabLayout.Tab tab = tabLayout.newTab(); tab.setCustomView(R.layout.tab); tab.setText("Tab 1"); tab.setIcon(R.drawable.ic_launcher); tabLayout.addTab(tab); 

Considerando que ahora podemos reemplazar todo después del comentario anterior por la adición de un TabItem en el diseño.

 <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.TabItem android:layout="@layout/tab" android:text="Tab 1" android:icon="@drawable/ic_launcher" /> </android.support.design.widget.TabLayout> 

Tenga en cuenta que siguen aplicándose los mismos requisitos para el diseño de View personalizada. Es decir, TextView para el texto debe tener el identificador de recursos del sistema @android:id/text1 , y el ImageView para el icono debe tener el ID @android:id/icon . Como ejemplo, la R.layout.tab de arriba:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical"> <ImageView android:id="@android:id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@android:id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 
  • El texto de la presentación de la etiqueta deslizante es mayúscula
  • Tabs Deslizar dirección en la aplicación de Android de derecha a izquierda
  • Fragmento de navegación dentro de una barra de acción con pestañas
  • ¿Usando TabWidget.setDividerDrawable ()?
  • Fragmentos de Android con pestañas y Viewpager
  • ¿Qué evento se activa cuando se selecciona un fragmento de ficha?
  • Android TabWidget sin TabHost con acciones personalizadas
  • ¿Cómo puedo cambiar el color de fondo de una pestaña cuando se usa TabLayout?
  • Tabs no toma el ancho completo de la pantalla
  • Cambiar el color de la línea en las pestañas - ActionBarSherlock
  • Cómo implementar pestañas personalizadas en Android como Instagram
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.