English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Método de configuración de separación de pestañas en TabLayout (explicación de ejemplo)

TabLayout y ViewPager se utilizan conjuntamente, lo que ofrece muchas ventajas, pero TabLayout tiene muchos aspectos que son criticados.

Aquí solo se explica cómo establecer el espacio entre las pestañas, encontré montones de métodos en línea, nada de padding y margin funciona, no hay otra opción, si queremos usar TabLayout, tendremos que encontrar una manera.

Método de implementación, ya que esta cosa no se puede configurar fácilmente, haremos algo en el fondo, el código de disposición es el siguiente:

<android.support.design.widget.TabLayout
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@"+id/tl_download_tabs"
  android:layout_width="wrap_content"
  android:layout_height="30dp"
  android:layout_marginTop="10dp"
  android:layout_gravity="center_horizontal"
  android:overScrollMode="never"
  app:tabMode="fixed"
  app:tabPaddingStart="30dp"
  app:tabPaddingEnd="30dp"
  app:tabIndicatorHeight="0dp"
  app:tabBackground="@drawable"/download_tab_bg_selector"
  app:tabSelectedTextColor="#000000"
  app:tabTextColor="#ffffff"/>

Segundo, el punto clave está en el selector de fondo, el código es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_selected="true">
  <!--<shape>
   <solid android:color="#ffffff"/>
   <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" />
  </shape>-->
  <!--Para que los tabs internos de TabLayout tengan espacio, no se puede encontrar otro método de configuración, solo se puede configurar el espacio en el gráfico de fondo-->
  <layer-list>
   <item>
    <shape>
     <solid android:color="@android:color/transparent"/>
    </shape>
   </item>
   <item android:left="5dp" android:right="5dp">
    <shape>
     <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" />
     <solid android:color="#ffffff"/>
    </shape>
   </item>
  </layer-list>
 </item>
 <item android:state_selected="false">
  <!--<shape>
   <solid android:color="#bcbcbc"/>
   <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" />
  </shape>-->
  <layer-list>
   <item>
    <shape>
     <solid android:color="@android:color/transparent"/>
    </shape>
   </item>
   <item android:left="5dp" android:right="5dp">
    <shape>
     <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" />
     <solid android:color="#bcbcbc"/>
    </shape>
   </item>
  </layer-list>
 </item>
</selector>

Los comentarios eliminados son el selector sin intervalo original, aquí se ha configurado directamente un padding lateral en el fondo, el efecto es excelente.

Desventaja: si el intervalo es demasiado grande, este método tiene un defecto, es decir, puede seleccionar el tab en un lugar en blanco.

Sin embargo, para intervalos no muy grandes, básicamente no se nota.

Tercero, el uso de Activity es muy simple:

TabLayout mTabLayout = (TabLayout) findViewById(R.id.tl_download_tabs);
  mTabLayout.addTab(mTabLayout.newTab().setText("descargado"));
  mTabLayout.addTab(mTabLayout.newTab().setText("Descargando"));
  mTabLayout.setupWithViewPager(mViewPager);

Cuatro, originalmente en el diseño lineal, poniendo TabLayout y ViewPager, tratando de anidar un RelativeLayout más en el exterior de TabLayout, descubriendo que el texto de la pestaña no se muestra, en cuanto a lo que se dice en línea sobre el cambio de orden de addTab y setupWithViewPager, también es un agujero, se puede ver, pero apareció una situación más absurda, dos espacios en blanco en el frente, y dos normales al final, en resumen, es muy extraño.

Finalmente, debe procesarse en Adapter, simplemente rewrite el siguiente método, de hecho, así puede ser más razonable, al menos puede garantizar que el número de pestañas sea consistente con el número de páginas de ViewPager.

@Override
  public CharSequence getPageTitle(int position) {
   if(position == 0){
    return "Descargado";
   } 1{
    return "Descargando";
   }
   return "";
  }

La siguiente publicación sobre el método de configuración del intervalo de pestañas en TabLayout (explicación de ejemplo) es todo el contenido que el editor comparte con ustedes, espero que les sea útil y esperamos que todos lo apoyen y alienten el tutorial de clamor.

Declaración: Este artículo se publica en la red, pertenece al propietario original, el contenido se contribuye y carga de manera autónoma por los usuarios de Internet, este sitio web no posee los derechos de propiedad, no se ha realizado la edición humana y no asume la responsabilidad legal relevante. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w3Declaración: El contenido de este artículo se obtiene de la red, pertenece al propietario original, el contenido se contribuye y carga de manera autónoma por los usuarios de Internet, este sitio web no posee los derechos de propiedad, no se ha realizado la edición humana y no asume la responsabilidad legal relevante. Si encuentra contenido sospechoso de infracción de derechos de autor, por favor envíe un correo electrónico a: notice#w

Te gustará