gpt4 book ai didi

android - 支持 Android Pie 中的浅色和深色主题

转载 作者:行者123 更新时间:2023-11-30 05:11:52 26 4
gpt4 key购买 nike

Android Pie 添加了在设置 -> 显示 -> 设备主题菜单中切换浅色/深色主题的功能。

我希望我的应用根据设备设置中设置的设备主题应用正确的主题。

根据Styles and Themes Android 指南,对于黑暗模式,应用程序应使用扩展 Theme.AppCompat 的主题,对于轻模式,应用程序应使用扩展 Theme.AppCompat.Light 的主题.

所以我在我的应用中创建了两个主题:

<style name="AppTheme.Dark" parent="Theme.AppCompat">
...
</style>

<style name="AppTheme.Light" parent="Theme.AppCompat.Light">
...
</style>

然而在AndroidManifest.xml当我用 <application> 声明应用程序时标签我只能在android:theme中指定一个主题属性:

<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher"
android:supportsRtl="true"
android:theme="@style/AppTheme.Light"
tools:replace="android:name">

如何在 AndroidManifest.xml 中申报我的申请动态选择@style/AppTheme.Light@style/AppTheme.Dark根据设备设置中设置的设备主题?

最佳答案

如果你想改变一个已经存在的 Activity 的主题,在 setTheme() 之后调用 recreate()。

注意:如果在 onCreate() 中更改主题,请不要调用重新创建,以避免无限循环。

  protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// Call setTheme before creation of any(!) View.
setTheme(android.R.style.Theme_Dark);

// ...
setContentView(R.layout.main);
}

关于android - 支持 Android Pie 中的浅色和深色主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53591670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com