Problema con el diseño de interfaz de usuario TabHost
Lo que estoy tratando de hacer es crear un diseño como este:
+--------+ Search |EditText| [Button] +--------+ +---------+ |Tab 1 |---------+ | |Tab 2 | |---------+---------+-----------------+ | ListView Item 1 | | ListView Item 2 | | ListView Item 3 | | ListView Item 4 | | ListView Item 5 | | ListView Item 6 | | ListView Item 7 | | ListView Item 8 | | ListView Item 9 | | ListView Item 10 | +-------------------------------------+
Así que es un TextView diciendo 'Search', un EditText y un botón.
- Cómo a la actividad del paisaje en el TabHost?
- Pestañas personalizadas en android
- Obtener índice de la pestaña seleccionada en tabHost
- Cambiar entre fragmentoTabs dando resultados inesperados
- ¿Cómo cambiar o cambiar entre las pestañas en la distribución gráfica sdk de Android?
A continuación, debajo de las pestañas – Tab 1 tiene un ListView, Tab 2 algunas otras cosas. Puedo conseguir una configuración simple de TabHost con dos lengüetas que trabajan muy bien pero no puede conseguir el antedicho para disponer correctamente.
El problema es que se instala y funciona bien – sólo el diseño es incorrecto. He intentado opiniones ponderadas y así sucesivamente pero no puedo conseguir cosas a la posición según el diagrama ASCII arriba.
Me gustaría crear la interfaz de usuario en el diseñador de Eclipse y comprobar el XML de que, excepto el diseñador no funciona con TabHost. Y DroidDraw no parece saber sobre TabHost.
Aquí está el XML:
<?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/TabHost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="5dp"> <TextView android:id="@+id/SearchTextView" android:text="Search" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="10"> </TextView> <EditText android:text="@+id/SearchEditText" android:id="@+id/SearchEditText" android:layout_width="fill_parent" android:layout_height="fill_parent" android:singleLine="true" android:layout_weight="10"> </EditText> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="10"/> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="70"> <LinearLayout android:id="@+id/Tab1ListLayout" android:layout_width="fill_parent" android:layout_height="fill_parent"> </LinearLayout> <Button android:id="@+id/tab2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Tab 2 button"/> </FrameLayout> </LinearLayout> </TabHost>
… y aquí está la Actividad:
public class tabtest extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TabHost tabs = (TabHost)findViewById(R.id.TabHost); tabs.setup(); TabHost.TabSpec spec = tabs.newTabSpec("tag1"); spec.setContent(R.id.Tab1ListLayout); spec.setIndicator("Tab 1"); tabs.addTab(spec); spec=tabs.newTabSpec("tag2"); spec.setContent(R.id.tab2); spec.setIndicator("Tab 2"); tabs.addTab(spec); EditText et = (EditText)findViewById(R.id.SearchEditText); et.setText("Some text."); }
- ¿Por qué Tab host no muestra el icono en android?
- Android elimina el espacio entre las pestañas de tabwidget
- Cómo hacer oval shape tabhost en android
- ¿Cómo implementar TabHost efecto deslizante?
- Actualización de iconos de pestaña de Android
- Android usando viewPager vs usando tabhost
- ¿Cómo implementar pestañas desplazables horizontalmente?
- Cómo implementar el menú de pestaña de Android sin tabhost obsoleto
Parece que necesita revisar conceptos básicos tales como "recursos de diseño" y "declarar diseño" .
Vea los trucos de diseño para el truco de disposición lineal de "peso". Solución posible:
<?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"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/SearchTextView" android:text="Search" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TextView> <EditText android:text="@+id/SearchEditText" android:id="@+id/SearchEditText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true"> </EditText> </LinearLayout> <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="0dip" android:layout_weight="1"/> <LinearLayout android:id="@+id/Tab1ListLayout" android:layout_width="fill_parent" android:layout_height="wrap_content"> </LinearLayout> <Button android:id="@+id/tab2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tab 2 button"/> </LinearLayout> </TabHost>
- La conexión BluetoothSocket de Android devuelve cero
- Cambio del brillo de la pantalla en un dispositivo HTC Sense