2
octobre
2012
Bonjour,
Petite astuce en direct de la formation Android Initiation avancée qui se passe à Paris le 01-02-03 Octobre.
J’ai un stagiaire Romain Zanon, qui se demande comment faire en sorte d’avoir un TabHost avec la barre d’onglets qui défile. Il y a deux choix, soit on se trouve un librairie qui le fait (au risque d’être lié à un obscur développeur qui ne mettra jamais sa lib à jour et qui potentiellement a du code tout pourri), soit on réfléchi quelques secondes.
Tout d’abord, rappelons le code pour afficher des onglets:
Le code Xml du layout est le suivant:
<LinearLayout xmlns:android= »http://schemas.android.com/apk/res/android »
android:layout_width= »fill_parent »
android:layout_height= »fill_parent »
android:orientation= »vertical » >
<TabHost
android:id= »@+id/tabhost »
android:layout_width= »fill_parent »
android:layout_height= »fill_parent » >
<LinearLayout
xmlns:android= »http://schemas.android.com/apk/res/android »
android:layout_width= »fill_parent »
android:layout_height= »fill_parent »
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= »fill_parent » >
<DigitalClock
android:id= »@+id/digital »
android:layout_width= »fill_parent »
android:layout_height= »fill_parent »
android:gravity= »center » />
<AnalogClock
android:id= »@+id/analog »
android:layout_width= »fill_parent »
android:layout_height= »wrap_content »
android:layout_gravity= »center » />
<!–…d’autres onglets…–>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
Bon, alors comment je fais pour avoir les onglets qui défilent ?o? je peux partir dans de grands hacks de code, tout ça, mais je peux aussi faire très simple, il me suffit de placer ma barre d’onglets dans un HorizontalScrollView et il défileront automatiquement.
Le code:
<LinearLayout xmlns:android= »http://schemas.android.com/apk/res/android »
android:layout_width= »fill_parent »
android:layout_height= »fill_parent »
android:orientation= »vertical » >
<TabHost
android:id= »@+id/tabhost »
android:layout_width= »fill_parent »
android:layout_height= »fill_parent » >
<LinearLayout
xmlns:android= »http://schemas.android.com/apk/res/android »
android:layout_width= »fill_parent »
android:layout_height= »fill_parent »
android:orientation= »vertical » >
<HorizontalScrollView
android:layout_width= »fill_parent »
android:layout_height= »wrap_content » >
<TabWidget
android:id= »@android:id/tabs »
android:layout_width= »wrap_content »
android:layout_height= »wrap_content » />
</HorizontalScrollView>
<FrameLayout
android:id= »@android:id/tabcontent »
android:layout_width= »fill_parent »
android:layout_height= »fill_parent » >
<DigitalClock
android:id= »@+id/digital »
android:layout_width= »wrap_content »
android:layout_height= »fill_parent »
android:background= »#AA00F0FF »
android:gravity= »center » />
<AnalogClock
android:id= »@+id/analog »
android:layout_width= »fill_parent »
android:layout_height= »wrap_content »
android:layout_gravity= »center »
android:background= »#AAFF00FF » />