Je cherchais depuis un jour un moyen d'obtenir mon application Android avec des onglets au bas de l'écran.
Sur le site Web des développeurs Android, dans la section Styles et thèmes, ils semblent avoir l'exemple exact de ce que j'essaie de faire, mais ils n'ont pas jugé nécessaire de fournir un exemple décent de cela:
Tous les conseils/solutions que je trouve sur le Web échouent. Il me semble toujours que la mise en page suivante est très laide et que les onglets sont très mal placés en haut de l'écran, à côté du nom de l'application :-(
Est-ce que quelqu'un a un indice sur la façon d'accomplir cela?
Merci beaucoup d'avance pour vos conseils!
Je pense que ces exemples vous seront utiles: Android Exemple de barre d’onglet inférieure AND THIS
Voici les deux liens de github qui ont mis en œuvre l'onglet en bas.
J'utilise cette disposition pour localiser les onglets en bas de l'écran:
?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="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:orientation="vertical"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<FrameLayout
Android:id="@Android:id/tabcontent"
Android:layout_width="0dp"
Android:layout_height="0dp"
Android:layout_weight="0"/>
<FrameLayout
Android:id="@+Android:id/realtabcontent"
Android:background="@drawable/bg_main_app_gradient"
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_weight="1"/>
<TabWidget
Android:id="@Android:id/tabs"
Android:background="#EAE7E1"
Android:orientation="horizontal"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_weight="0"/>
</LinearLayout>
</TabHost>
exemple de code: https://stackoverflow.com/a/23150258/2765497
Avec l'introduction de la navigation Bottom.
https://material.google.com/components/bottom-navigation.html
Tu peux le faire
Je voulais poster une mise à jour ici. Les barres de navigation inférieures sont maintenant Android Canon. Les principales conséquences de ceci sont:
1) Utilisez les barres de navigation du bas uniquement pour 3-5 icônes. Moins, utilisez tabs . De plus, utilisez des onglets déroulants (page suivante sur le même lien).
2) Évitez d’utiliser une barre de navigation inférieure et des onglets ensemble et assurez-vous que les responsabilités des deux sont clairement séparées si vous le faites.
3) Les barres de navigation inférieures doivent être utilisées pour navigation et non actions (utilisez la variable ActionBar
pour celles-ci)
Je pense que vous n'avez pas assez cherché votre problème parce que vous utilisez le mauvais mot clé.
Ce que vous affichez dans la 1ère image en bas de l'application Gmail, il y a 4 menus et le 5ème menu de débordement et la barre supérieure en haut
Vous pouvez placer un menu au bas en utilisant une simple propriété dans le manifeste; une seule ligne sur l'activité principale qui montre la barre d'action
Android:uiOptions="splitActionBarWhenNarrow"
Comme ça :
<activity
Android:name="com.example.HomeActivity"
Android:screenOrientation="portrait"
Android:uiOptions="splitActionBarWhenNarrow"
Android:theme="@style/Theme.Sherlock.Light" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Google ne recommande pas d'avoir des onglets en bas.
Consultez le guide de modèle de conception officiel suivant sur Android,
Et cherchez la section "Ne pas utiliser les barres d’onglet inférieures"
http://developer.Android.com/design/patterns/pure-Android.html
C'est très simple....
Pour une simple barre d'onglets, nous utilisons
<?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"
Android:padding="5dp">
<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"
Android:padding="5dp" />
</LinearLayout>
</TabHost>
Mais dans la barre d'onglets inférieure, nous utilisons
**
<?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">
<TabWidget
Android:id="@Android:id/tabs"
Android:layout_alignParentBottom="true"
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"
Android:padding="5dp" />
</RelativeLayout>
</TabHost>**
L'essentiel est
Android:layout_alignParentBottom=”true”;
Je suis tombé sur votre question en cherchant à faire la même chose, cependant, selon les directives de développement d’androïdes, vous ne devriez jamais avoir de barre d’onglet en bas, car c’est une fonctionnalité iOS ...
Vous semblez avoir la barre du bas un peu confuse. Ce n'est pas une barre de tabulation. La barre du bas concerne les actions et non les écrans de navigation. Par exemple, dans la capture d'écran de l'application Gmail que vous avez affichée ci-dessus, la barre du bas permet à l'utilisateur de: composer un e-mail, rechercher, taguer, actualiser et plus. Voir: http://developer.Android.com/design/patterns/actionbar.html
Techniquement, ces boutons permettent de naviguer entre les écrans, mais la barre d’onglet est généralement utilisée pour "changer" d’écran. Par exemple, afficher le contenu par catégorie.
Hmm, mais dans la dernière version de l'application Gmail, ces boutons d'action se trouvent en haut. Soupir...