J'ai vu des discussions à ce sujet, mais rien de précis. Existe-t-il un moyen de placer les onglets dans un TabWidget en bas de l'écran? Si c'est le cas, comment?
J'ai essayé ce qui suit, mais je n'ai pas fonctionné:
a) réglage du tabwidget sous le framelayout
b) réglage de la gravité du tabwidget sur "bottom"
Merci! llappall
Réponses:
Voici la solution la plus simple, la plus robuste et la plus évolutive pour obtenir des onglets en bas de l'écran.
layout_height
à lawrap_content
fois sur FrameLayout et TabWidgetandroid:layout_weight="1"
android:layout_weight="0"
(0 est la valeur par défaut, mais pour l'accentuation, la lisibilité, etc.)android:layout_marginBottom="-4dp"
(pour supprimer le séparateur inférieur)Code complet:
la source
layout_weight=1
sur FrameLayout. Cela permet au contrôle onglet de "réclamer" sa hauteur hors du LinearLayout en premier.android:layout_marginBottom="-5px"
au TabWidget. Cela déplacera le TabWidget du bas de l'écran de 5 pixels, juste assez pour que vous ne voyiez pas le séparateur. Le FrameLayout compensera en taille pour qu'il fonctionne parfaitement. Je ne sais pas si la taille du diviseur change sur les appareils plus grands ou non. Vous devrez peut-être utiliser à ladp
place depx
.Essayez-le;) Il suffit de regarder le contenu du FrameLayout (@ id / tabcontent), car je ne sais pas comment il gérera en cas de défilement ... Dans mon cas, cela fonctionne car j'ai utilisé ListView comme contenu de mes onglets . :) J'espère que ça aide.
la source
Il existe un moyen de supprimer la ligne.
1) Suivez ce tutoriel: android-tabs-with-fragments
2) Ensuite, appliquez le changement RelativeLayout suggéré ci-dessus par Leaudro (appliquez les accessoires de mise en page à tous les FrameLayouts).
Vous pouvez également ajouter un ImageView au tab.xml dans l'élément n ° 1 et obtenir un look très iPhone aux onglets.
Voici une capture d'écran de ce sur quoi je travaille actuellement. J'ai encore du travail à faire, principalement faire un sélecteur pour les icônes et assurer une répartition horizontale égale, mais vous voyez l'idée. Dans mon cas, j'utilise des fragments, mais les mêmes principes devraient s'appliquer à un onglet standard.
la source
Je ne sais pas si cela fonctionnera pour toutes les versions d'Android (en particulier celles avec des éléments d'interface utilisateur personnalisés), mais j'ai pu supprimer la barre grise en bas en ajoutant
au XML TabWidget ...
la source
Pour tous ceux d'entre vous qui essaient de supprimer la ligne de séparation du tabWidget, voici un exemple de projet (et son tutoriel respectif), qui fonctionne très bien pour personnaliser les onglets et ainsi supprimer les problèmes lorsque les onglets sont en bas. Projet Eclipse: onglets personnalisés android ; Explication originale: blog ; J'espère que cela a aidé.
la source
Il existe deux façons d'afficher les onglets au bas d'une activité d'onglet.
Veuillez consulter le lien pour plus de détails .
la source
la source
Ce n'est peut-être pas exactement ce que vous recherchez (ce n'est pas une solution "facile" d'envoyer vos onglets en bas de l'écran) mais c'est néanmoins une solution alternative intéressante que je voudrais vous signaler:
ScrollableTabHost est conçu pour se comporter comme TabHost, mais avec une vue de défilement supplémentaire pour s'adapter à plus d'éléments ...
peut-être qu'en creusant dans ce projet open source, vous trouverez une réponse à votre question. Si je vois quelque chose de plus facile, je reviendrai vers vous.
la source
J'avais le même problème avec les onglets Android en essayant de les placer en bas de l'écran. Mon scénario était de ne pas utiliser de fichier de mise en page et de créer les onglets dans le code, je cherchais également à déclencher des activités de chaque onglet qui semblaient un peu trop complexes en utilisant d'autres approches, voici l'exemple de code pour surmonter le problème:
ajouter des onglets dans Android et les placer
la source
Oui, voir: link , mais il a utilisé des mises en page xml, pas des activités pour créer un nouvel onglet, alors mettez son code xml (set paddingTop pour FrameLayout - 0px), puis écrivez le code:
}
la source
Je recommande d'utiliser ce code pour un travail stable, il est optimisé pour les fragments imbriqués dans tab (par exemple MapFragment imbriqué) et testé sur "ne pas garder les activités": https://stackoverflow.com/a/23150258/2765497
la source