Question

J'ai 4 onglets. Chaque onglet est représenté par un bouton. Ces boutons sont utilisés pour sélectionner l'onglet actuellement affiché. Chaque bouton a une icône et un texte.

Je voudrais mettre en évidence l'onglet actuellement sélectionné en modifiant la couleur d'arrière-plan et la couleur de l'étiquette de texte du bouton correspondant. Je voudrais le faire en utilisant un éditeur de thème et de ressources.

J'ai créé un thème et spécifié des styles non sélectionnés, sélectionnés et pressés pour UIID "Tab". Mes onglets ont fière allure au soleil WTK! Bien! Mais j'ai trouvé que sur un vrai téléphone, les onglets ressemblent toujours à non sélectionnés. J'ai essayé sur Nokia 5800 XpressMusic et C7. Pourquoi la différence?

Après quelques expériences, j'ai découvert la raison - les boutons ne peuvent être que dans 2 états: non sélectionnés et pressés. Ils ne sont jamais dans l'état sélectionné. Sur l'émulateur lorsque je passe à un bouton à l'aide des touches NAVI, elle est sélectionnée.

Alors, que dois-je faire pour marquer l'onglet actuel?

Était-ce utile?

La solution 2

J'ai implémenté ce dont j'avais besoin. Merci à Shai et à son exemple.

Je n'ai pas utilisé les propriétés du thème et j'ai fait toutes les personnalisations dans le code. Je l'ai fait parce que je n'ai pas attrapé la façon dont la définition de l'UIID unique peut m'aider, car le problème n'est pas dans l'identification de l'UIID pour lequel les accessoires doivent être modifiés, mais en identifiant le style du bouton à changer.

Ci-dessous quelques notes importantes de ma solution.

  1. Appel addActionListener Pour les boutons APRÈS Ils ont ajouté aux onglets.
  2. Lorsqu'un bouton d'onglet est enfoncé, mettez à jour Non sélectionné Styles des boutons d'onglet. Vous pouvez également changer leurs icônes.
  3. Formulaire d'appel repaint() Après l'étape 2.

Autres conseils

Vous pouvez utiliser quelques approches différentes en particulier en 1,5.

Lwuit 1.5 a un composant Tabs qui fait à peu près tout pour vous et est remarquablement flexible.

Il utilise des boutons radio sur lesquels la méthode setToggleButton(true) est invoqué. Les boutons à bascule agissent comme des boutons radio, de sorte que lorsque vous appuyez sur un bouton du groupe, il reste enfoncé et est rendu à l'aide du style Togglebutton (vous pouvez définir l'UIID sur tout ce que vous voulez). Voir un échantillon d'utilisation des boutons à bascule dans la partie de démonstration de police de la démo LWuit.

Une option qui fonctionnera pour des versions plus anciennes de LWuit est de simplement définir l'interface utilisateur du bouton sur une valeur différente lorsqu'elle est appuyée (et de restaurer l'interface utilisateur du bouton précédemment sélectionné à la valeur d'origine).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top