Как изменить цвет фона, изменив тему в Android? - PullRequest
0 голосов
/ 09 июля 2019

Я хочу изменить цвет фона, когда я меняю тему в Android. Есть ли способ установить фон в XML как

android:background="@styles/colorAccent"

поэтому, когда я меняю тему, цвет фона автоматически меняется на акцент цвета соответствующей темы. Любой альтернативный подход также помог бы.

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Создание различных тем с этим атрибутом

<style name="YourTheme" >
<item name="android:background">@color/yourcolor</item>
</style>

Это будет применено к представлениям, для которых не задан фон, установленный вручную.

Наконец, вы можете применить свою тему с помощью

getTheme().applyStyle(R.style.YourTheme, true);

звонить до этого setContentView

1 голос
/ 09 июля 2019

Пример макета

 <FrameLayout
    style="@style/colorAccentStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content/>

styles.xml

<resources>

<style name="colorAccentStyle">
    <item name="android:background">?colorAccent</item>
</style>

Более простое решение

<FrameLayout
    android:background="?colorAccent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
...