1

我有点疑惑。我在我的应用程序中使用了 DayNight 主题(使用AppCompatDelegate.setDefaultNightMode()),但无法让它在我的MainActivity. ( MainActivitywhich extends FragmentActivity) 看起来从未设置为深色主题 -它始终保持在浅色主题中。

我尝试直接在我的 MainActivity 中设置主题:

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

但这不起作用。

我已经使用 ?attr/colorReference 正确设置了布局文件中的所有颜色。有谁知道这里出了什么问题?

编辑: 我的 styles.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>
4

1 回答 1

3

MainActivity(延伸FragmentActivity

FragmentActivity不知道 AppCompat。AppCompatDelegate仅由您使用,AppCompatActivity或者您必须手动将其连接到您的其他活动。

您可以扩展AppCompatActivity而不是FragmentActivity.

于 2020-04-15T18:18:55.337 回答