TabLayout establece el espaciado o el margen de cada ficha
Quiero establecer un margen entre cada pestaña. Al igual que en PagerTabStrip que tiene setTextSpacing (int textSpacing) para hacer el espaciado de texto entre tab. ¿Puede TabLayout hacer eso?
- Alinear abajo casi salen de la pantalla a la parte inferior cuando se utiliza la barra de herramientas deslizante
- Una sola pestaña en TabLayout no cubre el ancho completo
- ImageView en CollapsingToolbarLayout no cubre la altura completa?
- EditText getHint () devuelve null al usar la biblioteca de soporte de diseño
- BottomSheetDialogFragment - Cómo configurar la altura expandida (o el desplazamiento de la parte superior del min)
- Problema de altura NestedScrollView y WebView
- Botón de acción flotante que no se muestra completamente dentro de un fragmento
- Viewpager desborda la pantalla dentro del diseño del coordinador
- Biblioteca de diseño de Android CoordinatorLayout, AppBarLayout y DrawerLayout
- Tabla de soporte de diseño de Android Contenido solapado de superposición
- ¿Cómo puedo cambiar el tamaño de texto del elemento NavigationView?
- BottomNavigationView deshabilita el modo de cambio sin usar la reflexión
- Cambiar el color de un elemento de menú marcado en un cajón de navegación
He estado luchando este problema por un tiempo demasiado, encontré la solución en este hilo: Android Diseño de la Biblioteca de Apoyo TabLayout uso de diseño de pestañas personalizadas, pero el diseño de envolver las pestañas
<!-- Add the padding to tabPaddingStart and/or tabPaddingEnd --> <android.support.design.widget.TabLayout android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="@dimen/tab_layout_height" app:tabPaddingStart="10dp" app:tabPaddingEnd="10dp">
Puede utilizar el atributo tabMinWidth. Me gusta esto.
<android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="44dp" app:tabIndicatorColor="@color/default_enable" app:tabTextColor="@color/font_default_03" app:tabSelectedTextColor="@color/default_enable" app:tabMinWidth="50dp" android:clipToPadding="false" android:paddingLeft="4dp" android:paddingRight="4dp" />
diseño
<android.support.design.widget.TabLayout android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content"/>
Java
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); int betweenSpace = 100; ViewGroup slidingTabStrip = (ViewGroup) tabLayout.getChildAt(0); for (int i=0; i<slidingTabStrip.getChildCount()-1; i++) { View v = slidingTabStrip.getChildAt(i); ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v.getLayoutParams(); params.rightMargin = betweenSpace; }
Así se establece el margen para cuatro pestañas diferentes. Puede cambiar los valores de la función setMargins (v1, v2, v3, v4) para obtener un ajuste adecuado para el número de fichas con las que está trabajando. Espero que esto ayude. Tenga en cuenta que tabHost es el objeto de TabHost que aloja diferentes pestañas con las que está trabajando.
Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth(); View currentView; for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) { //This code removes divider between tabs tabHost.getTabWidget().setDividerDrawable(null); tabHost.getTabWidget().getChildAt(i).setLayoutParams(new LinearLayout.LayoutParams((width/8)-2,50)); currentView = tabHost.getTabWidget().getChildAt(i); LinearLayout.LayoutParams currentLayout = (LinearLayout.LayoutParams) currentView.getLayoutParams(); currentLayout.setMargins(30, 5, 80, 0); }
<android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMinWidth="0dp" app:tabMode="scrollable" />
- Android: InflateException: Línea de archivo XML binario: Error al inflar la clase <unknown>
- Android: la gravedad falla en API 18+