2010-09-20 8 views
5

Here piszą:Android: Czy mam tylko jeden rzut na nieruchomość za pomocą motywów? Czy w Androidzie nie ma nic takiego jak CSS?

Aby zastosować definicję stylu jako temat, należy zastosować styl do działania lub aplikacji w Android manifeście. Gdy to zrobisz, każdy widok w ramach działania lub aplikacji będzie miał zastosowanie do każdej obsługiwanej przez siebie właściwości. W przypadku przykładu , jeśli zastosujesz styl CodeFont z poprzednich przykładów do aktywności , wszystkie elementy widoku, które uzyskają , będą obsługiwały właściwości stylu tekstu.

Po ustawieniu koloru tekstu na czerwony, czy wszystkie elementy z tekstem zmieniają kolor na czerwony? Czy istnieje potężny specyfikator, jak w arkuszach stylów CSS? Po prostu widzę koncepcję stylów (style="@style/CodeFont").

Odpowiedz

3

W odpowiedzi na Twoje uwagi, możesz znaleźć to, czego szukasz w usłudze textAppearance.

Otwórz plik themes.xml tutaj:
https://android.googlesource.com/platform/frameworks/base/+/froyo-release/core/res/res/values/themes.xml

Jeśli tak znaleźć dla textAppearance można zauważyć różne pozycje, takie jak:

<style name="Theme"> 
    <item name="textAppearanceButton">@android:style/TextAppearance.Widget.Button</item> 
    ... 
    <item name="panelTextAppearance">?android:attr/textAppearanceInverse</item> 
    ... 

ten pozwala w pewnym stopniu do stylu całej Components twoją aplikację, jak pokazano w przykładzie z Maragues.

Podczas gdy nie można w pełni kontrolować stylu wszystkich elementów podrzędnych, nie mówię o widoku listy, przewijaniu itp., Istnieje pewne ograniczone wsparcie dla kontrolowania stylów niektórych komponentów opartych na tekście, takich jak TextView i lub Button.

+0

To jest właściwy kierunek, ale jak zmienić wygląd właściwości, na przykład textColor. Próbowałem utworzyć nowy styl, który dziedziczy z TextAppearance.Widget.Button i nadpisuje textColor, ale nie miał żadnego efektu – HRJ

+0

(Ustawiłem właściwość textAppearanceButton tak, aby wskazywała na nowy styl) – HRJ

2

Jeśli czytasz tuż poniżej cytowanego tekstu:

Aby ustawić motyw dla wszystkich działań aplikacji, otwórz plik AndroidManifest.xml i edytować tag zawierać androida: motyw z atrybutu nazwa stylu:

Jeśli chcesz, aby motyw został zastosowany do tylko jednego działania w aplikacji, dodaj zamiast niego atrybut android: theme.

i trochę po tym, opisuje jak dziedziczyć i zastąpić właściwości, podobnie jak CSS:

Jeśli lubisz motyw, ale chce go podkręcić, wystarczy dodać motyw jako rodzica Twój niestandardowy motyw. Na przykład, można zmodyfikować tradycyjny motyw dialogowe używać własnego obrazu tła tak:

<style name="CustomTextView" parent="@android:style/Widget.TextView"> 
    <item name="android:background">@drawable/custom_background</item> 
</style> 

Następnie, aby interit z CustomTextView

<style name="CustomTextView.RedText"> 
    <item name="android:textColor">@color/red</item> 
</style> 

Po zaprojektowaniu układu XML, można dziedziczyć temat i zastąpić właściwości

<TextView 
    android:id="@+id/example" 

    style="@style/CustomTextView.RedText" 

    android:textColor="@color/green" /> 

myślę, że należy czytać ponownie stronę sam ze sobą powiązane, to dobrze wyjaśnione :)

+0

Tak więc, w obu przypadkach muszę ustawić atrybut stylu w rzeczywistym elemencie? – OneWorld

+0

Możesz także ustawić styl w manifeście. Szablon lub może mieć motyw, który można później zastąpić. – Maragues

+0

A więc, co mogę zmienić, ustawiając motyw na działanie? Czy mogę powiedzieć coś podobnego "Wszystkie przyciski mają czerwony tekst, a wszystkie tekstowe mają niebieskie, małe znaki"? Wiesz, co mam na myśli, odnosząc się do CSS? – OneWorld

Powiązane problemy