Android: la personnalisation de l'apparence des Onglets à l'aide de TabHost & TabWidget
J'ai ouvert un post à ce sujet avant, mais je sens que je peux maintenant (après la lecture de certains autres postes) mieux expliquer ce que je veux et de le reformuler de sorte qu'il sera mieux comprendre.
J'ai suivi le tutoriel sur l'Onglet Mise en page sur le dev guide et j'ai réussi à créer des onglets avec elle, mais je voulez faire un peu de personnalisation (et je n'ai regarder sur d'autres posts, mais le code a beaucoup d'erreurs ou qu'il n'a pas répondu à ce que je cherche).
- Le premier problème que j'ai est que le test est en grande partie sur l'icône au lieu d'en dessous (j'ai utilisé une icône avec des dimensions 48x48 comme recommandé sur le dev guide). Je veux l'onglet d'agir comme wrap_content.
Je veux aussi changer la taille du texte (je pense que c'est appelé l'étiquette). - Je veux utiliser hex triplets de changer la couleur de fond des onglets, pour changer entre les situations : lorsque cet onglet est sélectionné et quand il ne l'est pas.
- Je veux être en mesure de modifier la couleur de la ligne qui est en dessous des onglets, je ne pouvais pas trouver toutes les informations sur la façon de le faire.
Le code que j'utilise actuellement pour créer un nouvel onglet (le dev guide):
intent = new Intent().setClass(this, GroupsActivity.class);
spec = tabHost.newTabSpec("groups").setIndicator("groups",
res.getDrawable(R.drawable.ic_tab_groups))
.setContent(intent);
tabHost.addTab(spec);
(groupes est le nom de l'onglet).
De l'aide est très apprécié!
Belgi: le titre est une des parties les plus importantes de votre question. S'il vous plaît au moins rapidement le vérifier avant de le soumettre.
ce qui n'allait pas avec elle ? (Je pose la question de savoir mieux pour l'avenir). merci pour l'éditer et l'aider
Cliquez sur le lien avec l'information en temps, juste à droite de "édité" au-dessus de ma "signature", il affichera l'historique d'édition.
ce qui n'allait pas avec elle ? (Je pose la question de savoir mieux pour l'avenir). merci pour l'éditer et l'aider
Cliquez sur le lien avec l'information en temps, juste à droite de "édité" au-dessus de ma "signature", il affichera l'historique d'édition.
OriginalL'auteur Belgi | 2011-10-16
Vous devez vous connecter pour publier un commentaire.
Plutôt que d'essayer de personnaliser le widget onglets eux-mêmes, ici, c'est une autre approche que j'ai utilisé avec succès sur un projet qui pourrait vous faire économiser des maux de tête:
L'idée est d'utiliser un caché TabWidget dans votre mise en page et de le contrôler avec une ambiance LinearLayout contenant des Boutons. De cette façon, vous pouvez personnaliser plus facilement les touches pour voir toutefois vous le souhaitez. Vous pourrez contrôler le réel TabWidget dans votre Activité au sein de chaque OnClick du bouton.
Créer votre mise en page à la fois avec le TabWidget et les Boutons:
Configurer le onCreate de votre activité de gérer à l'aide des boutons de réglage de l'onglet vues:
Comme vous pouvez le voir, je suis en utilisant un drawable pour les images des boutons on et off. En utilisant cette technique, vous n'êtes pas limité aux options disponibles quand il suffit juste d'essayer de personnaliser le look de la TabWidget les onglets et vous pouvez créer un complètement l'aspect personnalisé de vos onglets.
Désolé - eu quelques fautes de frappe dans la il y de alors que j'essayais de prendre les non-parties pertinentes. Devrait être bon maintenant. Gardez à l'esprit que je suis en train de faire référence à un drawable. Vous aurez besoin pour créer votre propre et d'ajuster les noms en conséquence.
Je suis encore en train de "Le balisage dans le document suivant l'élément racine doit être bien formé." mais cette fois c'est sur " <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="bas"> "
Vraiment désolé à ce sujet. Cette compilé pour moi.
Aussi, gardez à l'esprit que vous allez avoir à créer votre drawable images ou vous aurez une ressource ne trouve pas d'erreur. Mais, c'est tout l'intérêt de cette approche pour créer sur mesure un drawable pour remplacer les onglets.
OriginalL'auteur SBerg413
1 - Utiliser un affichage personnalisé:
au lieu de:
Puis définir l'affichage des onglets dans le fichier tabwidget_tabs.xml (vous pouvez définir une ImageView avant le textView et la textsize):
2 - Il n'est pas possible d'utiliser hex triplets de changer la couleur de fond des onglets parce qu'ils sont un drawable pas les couleurs. Cependant, vous pouvez utiliser un sélecteur qui change de l'un drawable. et vous pouvez combiner cette solution avec setColorFilter() et android:teinte, puis vous pouvez sélectionner l'arrière-plan à l'aide de hex triplets: Comment teindre un bitmap
tabs_bkgrd.xml:
Vous pouvez définir une couleur ou une forme, tab_selected_shape.xml:
3 - La ligne est un drawable trop. vous pouvez trouver les fichiers dans le sdk et les copier dans votre projet après les modifier pour changer la couleur à l'aide de gimp. Vous pouvez combiner cette solution avec setColorFilter() et android:teinte, puis vous pouvez sélectionner l'arrière-plan à l'aide de hex triplets trop. Lire:
de plus amples explications
android-sdk-linux_x86/plates-formes/android-7/data/res/drawable
android-sdk-linux_x86/plates-formes/android-7/data/res/drawable-mdpi
OriginalL'auteur albodelu
Que sur la solution que j'ai proposée sur cette question?
Vous pouvez personnaliser le drawable de chaque bouton, en utilisant la même que celle utilisée par Android natif de la barre d'onglets(à la recherche pour les ressources en Android.jar pour trouver le bon un drawable), de plus, vous pouvez personnaliser d'autres comportements que vous le désirez.
À la fin, vous obtiendrez quelque chose qui est graphiquement similaire à un tabbar, à partir d'un point de vue utilisateur, mais agit de manière différente d'un point de vue développeur.
OriginalL'auteur Rainbowbreeze