Tabwidget se superpone con el contenido de mi actividad

Después de pasar 2 días sólidos buscando una respuesta, me gustaría pedir ayuda sobre el siguiente comportamiento.

Estoy tratando de codificar una aplicación tabhost simple en Android, con un diseño por actividad. He diseñado mi diseño para que el tabwidget aparezca en la parte inferior de la pantalla.

En la primera pestaña, estoy intentando insertar un simple ListView de 2 líneas. Mi problema es que el ListView está bien en el fondo, pero la mitad de él está oculto detrás del tabwidget. Me gustaría saber cómo hacer que mi ListView se muestre justo encima del tabwidget.

Aquí está mi main.xml:

<?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_height="fill_parent" android:layout_width="fill_parent"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" /> <TabWidget android:id="@android:id/tabs" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </RelativeLayout> </TabHost> 

Aquí está mi clase de aplicación principal:

 public class TestTabWidget extends TabActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab intent = new Intent().setClass(this, AActivity.class); spec = tabHost.newTabSpec("artists").setIndicator("Tab A", res.getDrawable(R.drawable.ic_tab_a)) .setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(0); } } 

Aquí está mi código de actividad:

 public class AActivity extends Activity { ListView lvListe; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a_layout); lvListe = (ListView)findViewById(R.id.lvListe); lvListe.setBackgroundResource(R.layout.tables); String[] listeStrings = {"Value 1","Value 2"}; lvListe.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,listeStrings)); } } 

Aquí está mi diseño para la actividad:

 <?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"> <ListView android:id="@+id/lvListe" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentBottom="true" /> </RelativeLayout> 

Gracias a alguien dispuesto a ayudarme que estoy volviendo loco ….

Adán

Pruebe este diseño en su lugar para su sección RelativeLayout :

 <RelativeLayout android:layout_height="fill_parent" android:layout_width="fill_parent"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@android:id/tabs" android:padding="5dp" /> <TabWidget android:id="@android:id/tabs" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </RelativeLayout> 

En este momento, FrameLayout está llenando todo el espacio dentro de RelativeLayout , ya que RelativeLayout no hace distinciones sobre la colocación de elementos al lado del otro como LinearLayout hace, y permite la superposición. Mi ajuste le dice al diseño que rellene el espacio entre el widget y la parte superior de ese diseño.

Otra nota sobre RelativeLayout , el orden Z de los elementos está determinado por el orden en XML, por eso el TabWidget aparece en la parte superior de FrameLayout . Si usted había invertido el orden, el TabWidget ni siquiera habría sido visible!

¡Espero que ayude!

  • Android, cómo configurar la primera pestaña como una pestaña predeterminada siempre
  • Controlar el color-estado / tamaño de la pestaña en TabActivity?
  • Android Tabhost Problema - .setIndicator
  • Detener la vista web de Android que cubre tabwidget
  • Android: pestañas en la parte inferior
  • Android elimina el espacio entre las pestañas de tabwidget
  • ¿Cómo animar el elemento en Tab Layout cuando se selecciona una pestaña?
  • Creación de botones de pestaña personalizados
  • ¿Es posible usar el estilo ActionBarSherlock en TabWidget nativo?
  • Android: personalización de la apariencia de Tabs con TabHost y TabWidget
  • Widget de la pestaña siempre en los alfabetos de mayúsculas en Android 4.0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.