11
votes

appliquer un thème à un appwidget

Je suis en train de définir un thème pour un appwidget, et l'ont appliqué à le niveau de l'application. J'ai un thème comme,

<style name="theme.dark"> 
  <item name="android"background">#000000</item> 
</style> 


0 commentaires

5 Réponses :


8
votes

La réponse est que vous ne pouvez pas appliquer de thème de manière dynamique à un appwidget. Il n'y a pas de solution autre que de fournir plusieurs mises en page chacune de manière statique à un thème particulier, puis choisissez le bon thème / la mise en page lorsque vous construisez vos vues à distance.


0 commentaires

-1
votes

Utilisez SETSVISIBILIBILITY Pour masquer les mises en page avec ses propres styles en arrière-plan. Comme ceci: xxx

xml xxx


2 commentaires

Je ne vois pas comment ça vaut mieux que de choisir un fichier de mise en page ou une autre ... C'est la même chose, mais dans un fichier de données.


Oh, comment feriez-vous cela, pouvez-vous donner l'exemple?



3
votes

Puisque nous ne pouvons pas utiliser de manière dynamique sur un appwidget, je suggère une solution simple suivante - juste basculer entre les fichiers de mise en page:

Supposons que nous ayons deux mises en page différentes:

  • Layout1.xml
  • layout2.xml

    Nous définissons notre mise en page comme suit: xxx

    et lorsque nous aurons besoin de le basculer en second par: xxx < / Pré>

    Cette solution fonctionne bien pour moi.


2 commentaires

C'est ce que j'ai fini par faire aussi, mais lorsque vous commencez avec 2 dispositions pour le port et la terre, Times N Thèmes, Times N Mises en page pour différentes tailles d'écran, elle n'est pas gérable. La mise en page obtient des moyens appliquer soigneusement le même changement à chacune des différentes mises en page.


Vous êtes absolument juste en ce qui concerne la situation sur laquelle nous aurons différents thèmes de taille. Je crois qu'il existe des trembles pour ça :)



-4
votes

1 commentaires

contextthemewrapper s ou tout Contexte est effectivement désactivant pour RemoteView S parce que le RemoteView s est sérialisé et envoyé à un autre applications comme les lanceurs. De telles applications les attirent ensuite à l'aide de leur Contexte S



0
votes

Utilisez style = "@ Android: style / widget. (Thème). (ControlType) " " dans la disposition correspondante, par exemple holo sur un bouton : xxx

le style = ci-dessus styte un bouton équivalent à quel réglage < code> Android: theme = "Android: thème.holo " dans le manifeste ferait à ce bouton, était-ce un activité.


0 commentaires