2011-07-13 1 views
9

J'ai une application android sur laquelle je travaille avec un thème personnalisé appliqué dans le manifeste android sur l'activité principale elle-même. Cette activité crée un listview, auquel le style est appliqué.Hiérarchie de style dans Android - quel est l'ordre d'importance?

Si je crée une mise en page personnalisée pour cette liste, y compris un fichier xml distinct pour les lignes elles-mêmes et que j'applique un style directement à ces mises en page, ce style remplace-t-il le style général de l'application? J'essaie de comprendre la hiérarchie des événements en ce qui concerne le style et le thème. La façon dont je vais GUIRE ça marche dans mon exemple est: appliquer le style pour la rangée, référencé par la disposition des lignes xml> appliquer le style pour la vue globale, référencé par la présentation listview xml> appliquer le style du thème personnalisé, référencé par le style xml référencé par android manifest

Ai-je raison? Ou suis-je approcher de manière incorrecte. (Juste pour l'amour de la confusion, par « > » Je veux dire a une plus grande importance que)

+0

Je suis après la même question. Avec mes premières expériences, ça semble aller dans le sens inverse, ce qui est très très bizarre. Serait génial si quelqu'un peut confirmer. – dineth

+0

cela pourrait aider: http://developer.android.com/guide/topics/ui/themes.html#Inheritance – CrackerJack9

Répondre

0

Espoir Je suis comprendre votre question ici ...

Les styles que vous définissez dans styles.xml toujours remplacer les styles venant du thème actuellement utilisé par android.

Mais cela ne fonctionne que pour les attributs que vous écrasez.

Si vous laissez un attribut intact, Android fournira le style pour elle, et parfois cela vient vous mordre dans le cul :)

Ce système est mieux décrit comme ceci: Un textview nécessite un exemple d'attribut

<item name="android:textColor">#00FF00</item> 

Android va d'abord regarder dans la mise en page d'origine. Si non trouvé, il se penchera sur vos styles personnalisés. Si pas trouvé, il se penchera sur les styles android.

Espérons que cela aide.

0

Les thèmes standards ont des lignes similaires, qui définissent le style ListView:

<item name="listViewStyle">@android:style/Widget.ListView</item> 

Dans votre thème, vous pouvez faire

<item name="listViewStyle">@style/MyOwnListView</item> 

Quelque chose qui n'est pas défini dans le style ListView (propre ou par défaut) sera ce qui est défini dans le thème si vous l'avez défini ici.

Questions connexes