Android: pestañas en la parte inferior

He visto algunas charlas sobre esto, pero nada definitivo. ¿Hay una manera de poner las pestañas en un TabWidget a la parte inferior de la pantalla? ¿Si es así, cómo?

He intentado lo siguiente, pero no funcionó:

A) establecer el tabwidget debajo de la framelayout
B) ajustar la gravedad del tabwidget a "fondo"

¡Gracias! Llappall

Esta es la solución más simple, más robusta y escalable para obtener pestañas en la parte inferior de la pantalla.

  1. En su LinearLayout vertical, coloque el FrameLayout encima del TabWidget
  2. Establezca layout_height en wrap_content en FrameLayout y TabWidget
  3. Establecer el android:layout_weight="1"
  4. Establecer el android:layout_weight="0" (0 es el predeterminado, pero para el énfasis, legibilidad, etc)
  5. Establecer el android:layout_marginBottom="-4dp" (para eliminar el divisor inferior)

Código completo:

 <?xml version="1.0" encoding="utf-8"?> <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" android:padding="5dp"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dp" android:layout_weight="1"/> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" android:layout_marginBottom="-4dp"/> </LinearLayout> </TabHost> 

Pruébelo;) Sólo ver el contenido de la FrameLayout (@ id / tabcontent), porque no sé cómo se manejará en caso de desplazamiento … En mi caso, funciona porque utilicé ListView como el contenido de mis pestañas . 🙂 Espero eso ayude.

 <?xml version="1.0" encoding="utf-8"?> <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"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentTop="true" android:layout_above="@android:id/tabs" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" /> </RelativeLayout> </TabHost> 

Hay una manera de quitar la línea.

1) Sigue este tutorial: android-tabs-with-fragments

2) A continuación, aplique el cambio RelativeLayout que Leaudro sugirió anteriormente (aplique los apoyos de diseño a todos los FrameLayouts).

También puede agregar un ImageView a la tab.xml en el artículo # 1 y obtener un iPhone muy similar a mirar a las pestañas.

Aquí hay una captura de pantalla de lo que estoy trabajando ahora mismo. Todavía tengo algo de trabajo que hacer, principalmente hacer un selector para los iconos y asegurar la distribución horizontal igual, pero usted consigue la idea. En mi caso, estoy usando fragmentos, pero los mismos principios deben aplicarse a una vista de pestaña estándar.

Introduzca aquí la descripción de la imagen

No estoy seguro de si funcionará para todas las versiones de Android (especialmente aquellas con cosas personalizadas de interfaz de usuario), pero pude eliminar la barra gris en la parte inferior agregando

  android:layout_marginBottom="-3dp" 

A la TabWidget XML …

Para todos aquellos que tratan de eliminar la línea de separación de la tabWidget, aquí es un proyecto de ejemplo (y su tutorial respectivo), que funcionan muy bien para personalizar las pestañas y, por tanto, eliminar los problemas cuando las pestañas están en la parte inferior. Proyecto Eclipse: android-custom-tabs ; Explicación original: blog ; Espero que esto ayudó.

Hay dos maneras de mostrar pestañas en la parte inferior de una actividad de pestaña.

  1. Uso del diseño relativo
  2. Uso del atributo Layout_weight

Por favor, consulte el enlace para obtener más detalles .

 <?xml version="1.0" encoding="utf-8"?> <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:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" android:background="#252a31" android:tabStripEnabled="false" > </TabWidget> </LinearLayout> </TabHost> 

Esto puede no ser exactamente lo que estás buscando (no es una solución "fácil" para enviar tus pestañas a la parte inferior de la pantalla), pero es sin embargo una solución alternativa interesante que me gustaría señalar a ti:

ScrollableTabHost está diseñado para comportarse como TabHost, pero con un scrollview adicional para caber más elementos …

Tal vez buscando en este proyecto de código abierto, encontrarás una respuesta a tu pregunta. Si veo algo más fácil, volveré a ti.

Yo estaba teniendo el mismo problema con las pestañas de Android cuando se trata de colocarlos en la parte inferior de la pantalla. Mi escenario era no usar un archivo de diseño y crear las pestañas en el código, también estaba buscando a las actividades de fuego de cada pestaña que parecía un poco demasiado complejo con otros enfoques por lo que, aquí está el código de ejemplo para superar el problema:

Agregando-pestañas-en-android-y-colocándolos

Sí, vea: link , pero usó xml layouts, no actividades para crear una nueva pestaña, así que ponga su código xml (configure paddingTop para FrameLayout – 0px) y luego escriba el código:

 public class SomeActivity extends ActivityGroup { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TabHost tab_host = (TabHost) findViewById(R.id.edit_item_tab_host); tab_host.setup(this.getLocalActivityManager()); TabSpec ts1 = tab_host.newTabSpec("TAB_DATE"); ts1.setIndicator("tab1"); ts1.setContent(new Intent(this, Registration.class)); tab_host.addTab(ts1); TabSpec ts2 = tab_host.newTabSpec("TAB_GEO"); ts2.setIndicator("tab2"); ts2.setContent(new Intent(this, Login.class)); tab_host.addTab(ts2); TabSpec ts3 = tab_host.newTabSpec("TAB_TEXT"); ts3.setIndicator("tab3"); ts3.setContent(new Intent(this, Registration.class)); tab_host.addTab(ts3); tab_host.setCurrentTab(0); } 

}

Recomiendo usar este código para un trabajo estable, optimizado para fragmentos anidados en la ficha (por ejemplo, MapFragment anidado) y probado en "no mantener actividades": https://stackoverflow.com/a/23150258/2765497

  • Widget de la pestaña siempre en los alfabetos de mayúsculas en Android 4.0
  • ¿Es posible usar el estilo ActionBarSherlock en TabWidget nativo?
  • Cómo cambiar el color del texto del indicador de tabs en android?
  • Parches existentes para android tabwidget para permitir pestañas en el lado izquierdo?
  • Android elimina el espacio entre las pestañas de tabwidget
  • Android, cómo configurar la primera pestaña como una pestaña predeterminada siempre
  • ¿Cómo se puede eliminar el relleno o margen en Tabwidget en android?
  • SupportFragment + TabWidget + Samsung Device = "java.lang.IllegalStateException: No se puede realizar esta acción después de onSaveInstanceState"?
  • Tabhost- establece la posición de la divisa en pestañas Android
  • Cómo aumentar la altura de la pestaña seleccionada en el widget de pestaña?
  • Cómo crear el centro de tabbar en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.