Подтвердить что ты не робот

Как ссылаться на стиль в пользовательской теме

У меня есть экран входа в систему, который по-разному используется для разных версий моего приложения. Мне нужно, чтобы фоновое изображение было другим в файле макета для этого экрана, поэтому я хочу указать на другой стиль для контейнера верхнего уровня. Я немного не понимаю, как это сделать.

Я прописал стиль, похожий на:

<resources>

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

</resources>

У меня есть несколько различных тем для приложения:

<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>

И я определил следующие стили:

<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>

И, наконец, файл login.xml что-то вроде:

<?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>

Я делаю что-то неправильно? Можно ли это сделать таким образом?

4b9b3361

Ответ 1

Хорошо, я понял, ссылка на стиль должна быть:

style="?attr/loginPageContainerStyle"

Понял, что хочу поделиться.