2011-07-13 12 views
9

Mam aplikację na Androida, na której pracuję z niestandardowym motywem zastosowanym do niego w manifeście systemu Android na samym głównym działaniu. To działanie tworzy widok listy, który ma zastosowany styl.Hierarchia stylów w systemie Android - jaka jest kolejność ważności?

Jeśli utworzę niestandardowy układ dla tego widoku listy, w tym osobny plik xml dla samych wierszy, a ja zastosuję stylizację bezpośrednio do tych układów, czy ten styl nadpisze ogólny styl aplikacji? Próbuję zrozumieć hierarchię wydarzeń, jeśli chodzi o styl i stylizację.

Sposób, w jaki GUESSING to działa w moim przykładzie, to: zastosuj styl dla wiersza, do którego odwołuje się układ wierszy xml> zastosuj styl dla ogólnego widoku listy, do którego odwołuje się układ widoku listy xml> zastosuj styl z niestandardowego motywu, do którego odwołuje się styl xml odwołuje się do android manifestu:

Mam rację? Czy też podchodzę do tego niepoprawnie. (Tylko dla Niejasności dobra, przez „>” To znaczy ma większe znaczenie niż)

+0

Mam na to samo pytanie. Z moim początkowym eksperymentem wydaje się, że idzie w odwrotną stronę, co jest bardzo dziwne. Byłoby wspaniale, gdyby ktoś mógł potwierdzić. – dineth

+0

może to pomóc: http://developer.android.com/guide/topics/ui/themes.html#Inheritance – CrackerJack9

Odpowiedz

0

Nadzieja Ja rozumiem pytanie tutaj ...

style definiowane w styles.xml zawsze nadpisać style pochodzące z tematu aktualnie używanego przez Androida.

Ale działa to tylko dla atrybutów, które nadpisujesz.

Jeżeli pozostawisz atrybut nietknięty, android zapewni styl dla niego, a czasem to przychodzi ugryzie cię w tyłek :)

System ten najlepiej można opisać tak: TextView wymaga przykład atrybutu

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

Android najpierw zajrzy do oryginalnego układu. Jeśli nie zostanie znaleziony, zajrzy do Twoich niestandardowych stylów. Jeśli nie zostanie znaleziony, będzie wyglądać na style Androida.

Mam nadzieję, że to pomoże.

0

Standardowe motywy mają linie podobne, które definiują styl ListView:

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

W swoim własnym tematu można zrobić

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

coś, co nie jest zdefiniowana w stylu ListView (własnych lub domyślnie) będą zdefiniowane w motywie, jeśli je zdefiniowałeś.

Powiązane problemy