La semplice risposta, no. Devi configurare il tuo TabHost
in codice Java e creare le tue schede. È possibile avere layout statici per le schede senza utilizzare frammenti ma richiede ancora l'installazione in Java.
Se non si esegue questa impostazione in codice, il proprio TabWidget
non saprà quale layout corrisponde a quale scheda e non sarebbe in grado di funzionare. Dovrai scrivere un po 'di codice.
Il codice per fare ciò è davvero semplice.
L'XML (collocato all'interno il layout in cui si desidera):
<TabHost android:id="@+id/tab_host"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<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="wrap_content">
<LinearLayout
android:id="@+id/tab_one_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/tab_two_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</FrameLayout>
</LinearLayout>
</TabHost>
Il codice Java (posizionato ovunque si imposta il layout):
TabHost host = (TabHost)findViewById(R.id.tab_host);
host.setup();
TabSpec spec = host.newTabSpec("Tab One");
spec.setContent(R.id.tab_one_container);
spec.setIndicator("Tab One");
host.addTab(spec);
spec = host.newTabSpec("Tab Two");
spec.setContent(R.id.tab_two_container);
spec.setIndicator("Tab Two");
host.addTab(spec);
A un certo punto si dovrà avere del codice: l'xml non saprà come passare quando si fa clic su una scheda e cosa fare quando ciò accade. Puoi evitare qualcosa di pesante come attività/frammenti, ma non sarà senza codice. –