148 votes

Android : Onglets au bas

J’ai vu quelques bavardages à ce sujet, mais rien de précis. Y a-t-il un moyen de mettre les onglets dans un TabWidget vers le bas de l’écran ? Dans l’affirmative, comment ?

J’ai essayé ce qui suit, mais n’a pas fonctionné :

un) définissant le tabwidget ci-dessous le framelayout
b) définissant la gravité de la tabwidget sur « bas »

Merci ! llappall

272voto

stormin986 Points 3604

Voici la plus simple et la plus robuste et évolutive de la solution pour obtenir des onglets au bas de l'écran.

  1. Dans votre verticale LinearLayout, mettre le FrameLayout au-dessus de la TabWidget
  2. Ensemble layout_height de wrap_content sur les deux FrameLayout et TabWidget
  3. Ensemble FrameLayout de l' android:layout_weight="1"
  4. Ensemble TabWidget de l' android:layout_weight="0" (valeur par défaut est 0, mais pour l'accent, la lisibilité, etc)
  5. Ensemble TabWidget de l' android:layout_marginBottom="-4dp" (pour enlever le fond de diviseur)

Code complet:

<?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">

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:layout_weight="1"/>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:layout_marginBottom="-4dp"/>

    </LinearLayout>

</TabHost>

38voto

Leaudro Points 790

Essayez-le  ;) Il suffit de regarder le contenu de la FrameLayout(@id/tabcontent), parce que je ne sais pas comment il se chargera en cas de défilement... Dans mon cas cela fonctionne parce que j’ai utilisé le contenu de mes onglets ListView. :) Elle pourra être qu'utile.

12voto

Brill Pappin Points 1662

Il y a un moyen de supprimer la ligne.

1) Suivez ce tutoriel: android-onglets-avec-des fragments

2) Puis appliquer le RelativeLayout changement Leaudro suggéré ci-dessus (appliquer la mise en page des accessoires pour tous les FrameLayouts).

Vous pouvez également ajouter une ImageView à l'tab.xml dans l'élément n ° 1 et d'obtenir une très iPhone comme look pour les onglets.

Voici une capture d'écran de ce que je suis en train de travailler sur la droite maintenant. J'ai encore un peu de travail à faire, principalement en faire un sélecteur pour les icônes et assurer l'égalité de la distribution horizontale, mais vous obtenez l'idée. Dans mon cas, je suis en utilisant des fragments, mais les mêmes principes devraient s'appliquer à un standard de l'onglet affichage.

enter image description here

3voto

Djumaka Points 427

Pour tous ceux d'entre vous qui essayez de supprimer la ligne de séparation de la tabWidget, voici un exemple de projet (et son tutoriel respectif), que le travail idéal pour personnaliser les onglets et les éliminant ainsi les problèmes lorsque les onglets sont en bas. Projet Eclipse : android-custom-tabs ; Une explication originale : blog; Espérons que cela a aidé.

3voto

Justin Points 2212

Vous ne savez pas si elle fonctionne pour toutes les versions d'Android (en particulier ceux avec une INTERFACE utilisateur personnalisée de trucs), mais j'ai été en mesure de supprimer la barre grise en bas par l'ajout d'

 android:layout_marginBottom="-3dp"

pour le TabWidget XML...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X