Crear pestañas más pequeñas en Android

Estoy tratando de crear pestañas más pequeñas en android – pero no puedo conseguirlo para trabajar porque todo lo que sucede cuando creo una pestaña más pequeña es que muestra la pestaña más grande – pero sin un dibujable.

Este es mi código de diseño para las pestañas ahora – pero la altura no está envolviendo por alguna razón – sólo va a la altura de diseño habitual de Android.

<TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent"> </FrameLayout> </LinearLayout> </TabHost> 

Sería genial si alguien pudiera ayudarme a crear algo como la aplicación de Facebook – creo que se ve muy limpio y me encantaría implementar algo así:

Bueno, esto fue mucho más complicado de lo que pensé que debería ser, pero, sin embargo, esto debería conseguir una aplicación básica de la apariencia que desea …

  TabHost host = getTabHost(); TabSpec spec = null; TextView tab1 = null, tab2 = null; Intent intent = null; Resources resources = getResources(); XmlResourceParser parser = null; ColorStateList text = null; StateListDrawable[] drawables = new StateListDrawable[2]; int[] selected = {STATE_SELECTED}, unselected = {STATE_UNSELECTED}; Color selectedColor = Color.argb(255, 255, 255, 255), defaultColor = Color.argb(255, 119, 119, 119); // Load the colour lists. parser = resources.getXml(R.color.tab_text); text = ColorStateList.createFromXml(getResources(), parser); // Add an initial tab. ...Create Tab Contents Here... spec = host.newTabSpec("tab1"); tab1 = new TextView(this); tab1.setText(R.string.all_tab_title); tab1.setGravity(android.view.Gravity.CENTER); tab1.setTextSize(18.0f); tab1.setTextColor(text); spec.setIndicator(tab1); spec.setContent(intent); host.addTab(spec); // Add a second tab. ...Create Tab Contents Here... spec = host.newTabSpec("tab2"); tab2 = new TextView(this); tab2.setText(R.string.category_tab_title); tab2.setGravity(android.view.Gravity.CENTER); tab2.setTextSize(18.0f); tab2.setTextColor(text); spec.setIndicator(tab2); spec.setContent(intent); host.addTab(spec); // Set the background drawable for the tabs and select the first tab. drawables[0] = new StateListDrawable(); drawables[0].addState(selected, new ColorDrawable(selectedColor)); drawables[0].addState(unselected, new ColorDrawable(defaultColor)); drawables[1] = new StateListDrawable(); drawables[1].addState(selected, new ColorDrawable(selectedColor)); drawables[1].addState(unselected, new ColorDrawable(defaultColor)); tab1.setBackgroundDrawable(drawables[0]); tab2.setBackgroundDrawable(drawables[1]); host.setCurrentTab(0); 

Esto no tendrá en cuenta los bordes de ficha o el espaciado entre elementos sin embargo. También necesita una definición de lista de estado de color como la siguiente en el directorio ./res/color …

 <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:color="#ff000000" /> <item android:state_selected="false" android:color="#ffaaaaaa" /> <item android:color="#ffffffff"/> </selector> 

Espero que ayude.

Vi esto en otro foro, pero pensé que lo pasaría aquí.

 TabHost th = getTabHost(); .... // Setup all the tabs -- in my case, with text only -- no icons .... int iCnt = th.getTabWidget().getChildCount(); for(int i=0; i&ltiCnt; i++) th.getTabWidget().getChildAt(i).getLayoutParams().height /= 2; // Or the size desired 
  • El tutorial de superposición aparece detrás de la interfaz de usuario principal (Android)
  • RadioButtons programáticamente agregados se niegan a obedecer la ponderación LayoutParams
  • Establecer ventana transparente en el cuadro AlertDialog
  • Emular categoría / preferencia de Android
  • Diseño deslizante como google maps v7
  • Diferencia práctica entre posición e id de fila en onListItemClick ()
  • Recortar el área circular del mapa de bits en Android
  • ¿Cómo probar si una vista fragmentada es visible para el usuario?
  • Android ListView no resalta cuando se establece OnClickListener
  • Aplicación basada en mosaico de Android para la aplicación
  • Desplazamiento de texto por encima de los botones, botones fijos en la parte inferior
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.