Barra de acciones Tabulaciones CustomView demasiado largo

Después de conseguir finalmente que cada CustomView envuelva el padre de la lengüeta por completo, encontré un problema donde las lengüetas son demasiado largas y están dando vuelta a la barra de la acción en un resbalador. Mi drawables tiene anchos de 150px, que debería estar bien porque probé el ancho en px de la pantalla de Samsung Galaxy S2 y conseguí 480px (480/3 tabs = 160px cada uno).

Captura de pantalla:

introduzca la descripción de la imagen aquí

Configuración: Cada ficha está establecida por el mismo RelativeLayout que tiene diferentes recursos drawawble adjuntos al diseño. Ese diseño se pasa a setCustomView () de la ficha. No creo que sea necesario un ImageView para cada ficha, a menos que solucione mi problema. Algunos cambios de configuración de estilo, como quitar el relleno izquierdo y derecho del TabView, se han realizado para colocar las vistas personalizadas sobre la pestaña.

Código (no utiliza ImageView, estableciendo recurso extraíble en RelativeLayout)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="56dp" android:layout_margin="0dp" android:paddingBottom="2dp" > <!-- <ImageView android:id="@+id/ivCustomTab" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="2dp" android:contentDescription="@string/tabsDescription" android:duplicateParentState="true" /> --> </RelativeLayout> 

 //setting up tabs + custom views on tabs LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); RelativeLayout discoverTabLayout = (RelativeLayout) inflater.inflate(R.layout.actionbar_tabs, null); RelativeLayout tagsTabLayout = (RelativeLayout) inflater.inflate(R.layout.actionbar_tabs, null); RelativeLayout badgeTabLayout = (RelativeLayout) inflater.inflate(R.layout.actionbar_tabs, null); //ImageView customTabImg = (ImageView) customTabLayout.findViewById(R.id.ivCustomTab); //re-setting this ImageView for each tab ActionBar.Tab discoverTab = actionBar.newTab();//.setText("Discover").setIcon(R.drawable.selector_tabicon_discover);//.setCustomView(drawable.selector_tab_discover); //customTabImg.setImageResource(R.drawable.selector_tab_discover); discoverTabLayout.setBackgroundResource(R.drawable.selector_tab_discover); discoverTab.setCustomView(discoverTabLayout); 

 <!-- Application theme. --> <style name="Theme.AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="android:textSize">18sp</item> <item name="actionBarTabStyle">@style/Theme.TabsNoPadding</item> <item name="android:actionBarTabStyle">@style/Theme.TabsNoPadding</item> </style> <style name="Theme.TabsNoPadding" parent="@style/Widget.Sherlock.ActionBar.TabView"> <item name="android:paddingLeft">0dp</item> <item name="android:paddingRight">0dp</item> <item name="android:minWidth">0dp</item> </style> 

Lo que he intentado:

  • Añadiendo android: layout_width = "120dp" a RelativeLayout para acortar las pestañas, pero el ancho permaneció igual.
  • Re-tamaño de las imágenes y redujo una longitud total de 45px, sin cambios. Y si los establezco demasiado pequeños no cubrirán el anfitrión de la lengüeta.
  • También he notado que las pestañas customView (s) desaparecen onCreate () la mayor parte del tiempo. No estoy seguro de si eso tiene algo que ver con la representación de la hoja de desplazamiento de desplazamiento que no quiero.

Puedo publicar mi código de actividad principal si es necesario.

One Solution collect form web for “Barra de acciones Tabulaciones CustomView demasiado largo”

  1. Yo sugeriría pensar en dp (píxeles independientes de la densidad) en lugar de px (píxeles) cuando se trabaja en Android.

  2. Si desea una barra de tabulación personalizada, sugeriría simplemente crear un LinearLayout con un ancho definido como match_parent y una altura por su elección (por ejemplo, 48dp). La orientación se establecería en horizontal.

En el interior de LinearLayout crear tanta pestaña ImageView o View as many que desee y establecer el ancho a 0dp, la altura a match_parent y lo más importante peso a 1 (sin dp o cualquier otra unidad) para cada View dentro de LinearLayout. De esta manera las pestañas tendrán el mismo ancho y permanecerán dentro de los límites de la pantalla.

Espero que esto ayude.

  • Relativelayout dentro Scrollview no funciona
  • Obtener la posición de la vista con respecto a la mayoría de los padres en android
  • ¿Por qué mi ViewPager saldría de dentro de un CoordinatorLayout?
  • No se puede resolver el símbolo abc_ic_search_api_mtrl_alpha
  • Android no está recolectando el archivo derecha dimens.xml de la carpeta de valores
  • Problemas de procesamiento: Android Studio 1.2.1.1 y Gradle 1.2.3
  • ¿Están las opiniones "GONE" infladas?
  • Cambiar el tamaño de los diseños de forma programática (como animación) hasta "wrap_content"
  • CoordinatorLayout + AppbarLayout + Viewpager no cambia el tamaño del diseño secundario
  • WindowSoftInputMode y ScrollView
  • Cómo mostrar el encabezado de ListView cuando está vacío
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.