Sauvegarder
Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
Essentiel
Ces cookies sont nécessaires au bon fonctionnement du site, vous ne pouvez pas les désactiver.
Affichage
Accepter
Analytique
Outils utilisés pour analyser les données de navigation et mesurer l'efficacité du site internet afin de comprendre son fonctionnement.
Google Analytics
Accepter
Décliner

Onglet défilant (Tabhost avec un sliding du TabWidget), Formation Android.

2
octobre
2012

Onglet défilant (Tabhost avec un sliding du TabWidget), Formation Android.

Bandeau Conference
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 » />

Original author: MathiasSeguy
Sauvegarder
Choix utilisateur pour les Cookies
Nous utilisons des cookies afin de vous proposer les meilleurs services possibles. Si vous déclinez l'utilisation de ces cookies, le site web pourrait ne pas fonctionner correctement.
Tout accepter
Tout décliner
Essentiel
Ces cookies sont nécessaires au bon fonctionnement du site, vous ne pouvez pas les désactiver.
Affichage
Accepter
Analytique
Outils utilisés pour analyser les données de navigation et mesurer l'efficacité du site internet afin de comprendre son fonctionnement.
Google Analytics
Accepter
Décliner