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?
Ś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
Dziękuję bardzo. Dokładnie to, czego szukałem. – dentex