Настройка темы DayNight с помощью AppCompatDelegate.setDefaultNightMode () не работает для FragmentActivity - PullRequest
0 голосов
/ 15 апреля 2020

Я немного озадачен. Я использую тему DayNight в своем приложении (используя AppCompatDelegate.setDefaultNightMode()), но не могу заставить ее работать в моем MainActivity. MainActivity (что расширяет FragmentActivity) выглядит так, как будто оно никогда не настроено на темную тему - оно всегда остается в светлой теме .

Я попытался установить тему прямо в MainActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
    super.onCreate(savedInstanceState);
    // create main activity.
}

Но это не работает.

Я правильно установил все цвета в моих файлах макетов, используя? Attr / colorReference. Кто-нибудь знает, что здесь происходит не так?

РЕДАКТИРОВАТЬ: Мои стили. xml выглядит следующим образом:

<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <!--Default typeface and colors:-->
    <item name="android:typeface">monospace</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="colorAccentDarker">@color/colorAccentDarker</item>
    <item name="colorAccentDarker_80percent">@color/colorAccentDarker_80percent</item>

    <!--Show people's own wallpaper background-->
    <item name="android:windowShowWallpaper">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

1 Ответ

1 голос
/ 15 апреля 2020

MainActivity (что расширяет FragmentActivity)

FragmentActivity не имеет представления о AppCompat. AppCompatDelegate используется только AppCompatActivity или вам необходимо подключить его вручную к другим действиям.

Вы можете расширить AppCompatActivity вместо FragmentActivity.

...