Obtenir de l'ActionBar Titre TextView avec AppCompat v7 r21
J'ai une bibliothèque qui nécessite l'utilisation de la couleur de la TextView pour l'ActionBar titre. Avant AppCompat v7 r21 je pouvais juste findViewById et d'obtenir la couleur de l'afficher directement. Cependant, pour une raison que maintenant cela ne fonctionne pas. La vue est toujours null. J'ai écrit un code qui analyse la totalité de la vue de la hiérarchie et l'affiche de l'IDs, les types et les valeurs de toutes les TextViews. Le titre a pas d'ID, que je trouve très bizarre.
Une chose que j'ai remarqué, c'est quand j'ai essayé d'obtenir le contrôle ActionBar ce qui a été renvoyé a une Barre d'outils (même si je n'ai pas utiliser une Barre d'outils dans mon application). J'ai donc réitéré au-dessus de la Barre d'outils, les enfants de points de vue et à chaque fois qu'un TextView a été trouvé, j'ai comparé sa valeur de texte avec la barre d'outils.getTitle() pour s'assurer que le TextView je suis à la recherche pour. Pas l'idéal et je ne sais pas si ça marchera à tous les cas.
Personne ne sait ce qui pourrait être la solution la plus sûre?
- Avez-vous trouvé une solution?
- Nan, j'ai juste collé avec mon code pour trouver le titre TextView à travers traversant les enfants de la Barre d'outils.
- jetez un oeil à mon awnser ici: stackoverflow.com/a/26888120/2742962
- c'est un bon un, mais il serait briser si ils ont changé l'ID ou le nom de la membre de de nouveau 🙁
Vous devez vous connecter pour publier un commentaire.
Pas nécessaire pour la création de votre propre TextView, juste une boucle par les enfants de la barre d'outils pour obtenir de l'intégré dans le titre.
Généralement lors de l'utilisation de la Barre d'outils dans mon cas, si je suis en train de faire quelque chose de personnalisé avec le titre, je vais il suffit de gonfler le titre en mode manuel, puis définissez ses attributs en XML. Le point de la Barre d'outils est pour éviter ce genre de choses de se produire, de sorte que vous pouvez avoir plus de contrôle sur ce que votre barre d'outils ressemble à
Ensuite dans le code, vous devez faire quelque chose comme ceci:
Je sais que c'est un vieux post, mais cela a été la meilleure façon que j'ai trouvé pour permettre personnalisé textc de couleurs et des polices dans la Barre d'outils
Vous pouvez faire lik cette.
C'est un travail pour moi.
édition (septembre 2018): ne l'utiliser que de l'Android P réflexion sur l'android SDK peut jeter l'exception!
Je l'ai eu de l'aide de la réflexion.
Veuillez noter qu'il est fonctionne si j'ai de la barre d'outils est pas pour soutenir ActionBar...
Ici est un futur preuve façon d'obtenir le titre, dans le cas d'Android modifications de la commande de l'icône et du texte.