2012-06-15 15 views
13

Mam ekran logowania, który jest markowany inaczej dla różnych wersji mojej aplikacji. Potrzebuję, aby obraz tła był inny w pliku układu dla tego ekranu, dlatego chcę wskazać inny styl dla kontenera najwyższego poziomu. Nie wiem, jak to zrobić.Jak odwoływać się do stylu w niestandardowym motywie

Mam ogłoszony styleable coś takiego:

<resources> 

    <declare-styleable name="ThemeBase"> 
     <attr name="loginPageContainerStyle" format="reference" /> 
    </declare-styleable> 

</resources> 

Mam kilka różnych tematów dla aplikacji, jako takich:

<resources> 

    <style name="ThemeBase" parent="android:style/Theme.Light" /> 

    <style name="ThemeOne" parent="ThemeBase"> 
     <item name="loginPageContainerStyle">@style/loginPageContainerThemeOne</item> 
    </style> 

    <style name="ThemeTwo" parent="ThemeBase"> 
     <item name="loginPageContainerStyle">@style/loginPageContainerThemeTwo</item> 
    </style> 

</resources> 

I zostały zdefiniowane następujące style:

<resources> 
    <style name="loginPageContainerThemeOne"> 
     <item name="android:background">@drawable/background_theme_one</item> 
    </style> 

    <style name="loginPageContainerThemeTwo"> 
     <item name="android:background">@drawable/background_theme_two</item> 
    </style> 
</resources> 

Na koniec plik login.xml podobny do:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/loginRoot" 
    style= [ ? WHAT GOES HERE ? ] 
    android:gravity="center_horizontal" 
    android:orientation="horizontal"> 

    [ LAYOUT STUFF ... ] 

</LinearLayout> 

Czy robię coś złego? Czy można to zrobić w ten sposób?

Odpowiedz

14

Ok ja zorientowaliśmy się, że wniosek powinien być w stylu:

style="?attr/loginPageContainerStyle" 

sylwetka Chciałbym udostępnić.

+1

Świetny przykład z motywem i stylami Androida. Wystarczy wspomnieć, że na AndroidManifest na tagu aplikacji trzeba dodać android: theme = "@ style/ThemeOne" lub android: theme = "@ style/ThemeTwo" i to wszystko, co powinniśmy wiedzieć o motywach – Ragaisis

+0

Dziękuję bardzo. Dokładnie to, czego szukałem. – dentex

Powiązane problemy