Android ActionBar.Tab setCustomView () no cumple fill_parent

Estoy usando el método setCustomView () de ActionBar.Tab con este diseño:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/background_grey" > <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Test Tab" android:textColor="@color/background_dark_green"/> </RelativeLayout> 

Esta es mi función que establece el ActionBar:

 public void setActionBar() { ActionBar actionBar = getSupportActionBar(); //actionBar.hide(); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowTitleEnabled(false); //set action bar navigation mode actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //set tabs //home tab Tab tab = actionBar.newTab().setText(TAB_HOME).setTabListener(new PicoTabListener<StartFragment>(this, StartFragment.class)); tab.setCustomView(R.layout.tab_background); actionBar.addTab(tab); //events tab tab = actionBar.newTab().setText(TAB_EVENTS).setTabListener(new PicoTabListener<EventsFragment>(this, EventsFragment.class)); actionBar.addTab(tab); //enter event code tab = actionBar.newTab().setText(TAB_CODE).setTabListener(new PicoTabListener<EnterCodeFragment>(this, EnterCodeFragment.class)); actionBar.addTab(tab); } 

Y mi distribución de actividades:

 <?xml version="1.0" encoding="utf-8"?> <!-- This is the main layout of the application --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragment_basic_root" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/background_dark_green" > </RelativeLayout> 

Los resultados se parecen a esto (la pestaña superior izquierda con el fondo gris): Introduzca aquí la descripción de la imagen

¿Cómo puedo hacer que mi vista personalizada llene toda la pestaña y funcione correctamente?

Estoy utilizando el paquete de soporte v7 para Android 2.3

Sólo me encontré con esto y descubrí la solución. Debe crear un estilo para la pestaña que borra el fondo y el relleno y lo usa en su tema.

Styles.xml:

 <style name="Custom.ActionBar.TabView.Empty" parent="@style/Widget.AppCompat.ActionBar.TabView"> <item name="android:background">@null</item> <item name="android:padding">0dp</item> </style> 

Themes.xml:

 <style name="Theme.Custom" parent="@style/Theme.AppCompat.Light"> <item name="android:actionBarTabStyle">@style/Custom.ActionBar.TabView.Empty</item> <item name="actionBarTabStyle">@style/Custom.ActionBar.TabView.Empty</item> </style> 

Para cada objeto de tabulación creado simplemente añada layoutParams:

 .. tab.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)); actionBar.addTab(tab); 

Usted tiene que confiar en android:margin y android:padding cuando se trata de setCustomView de actionbarcompat

Teniendo en cuenta que parece que el relleno, el ancho, la altura y el margen del elemento raíz se ignoran.

Si sigues teniendo el problema, encontré una forma de obtener el espacio completo: ActionBar Tab with custom View no centrado

  • ¿Cómo detener títulos en las pestañas de Android de envolver en el medio de una palabra?
  • Barra de Acción de Android - con pestañas
  • Android Añadir pestaña dentro del fragmento
  • Aplicación de Android con ActionBar NullPointerException con configuración regional no predeterminada
  • Pestañas en TabLayout no llenar toda ActionBar
  • ¿Por qué obtengo un error al intentar establecer el contenido de un tabspec en android?
  • (ActionBar) Tabs + Pager + detail Fragmentos dentro del contenedor ViewPager
  • Botones en una vista personalizada cuando la vista personalizada se encuentra en una pestaña
  • android Tab Layout Diseño de la biblioteca
  • Comportamiento de desplazamiento de AppBarLayout
  • Personalizar el color de texto de la pestaña seleccionado en SlidingTabLayout
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.