在不扩展 AppCompatActivity 的情况下更改 Compose Light/Dark XML 主题
Changing Compose Light/Dark XML theme without extending AppCompatActivity
如果用户决定覆盖其 OS 级别设置并从 colors
中读取值,我想以编程方式更改 Compose 中用户设置的 light/dark 主题和 night/colors
个文件。
Jetpack compose 默认情况下会扩展 ComponentActivity
,因为扩展 AppCompatActivity
会扩展 FragmentActivity
,这在执行仅 Compose 应用程序时不需要。
当我扩展 ComponentActivity
时,更改 light/dark 模式的 AppCompatDelegate
方法不再起作用,因为我没有扩展 AppCompatActivity
例如AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
如果我改为扩展 AppCompatActivity
,它会像您期望的那样工作。
当我不需要时扩展 AppCompatActivity
似乎很愚蠢,但我找不到任何其他方法来告诉撰写应用程序使用基于用户的正确 xml 值输入?
我是不是遗漏了什么,或者这个功能还不存在,我需要扩展 AppCompatActivity
Compose 具有我可以更改的编程主题,但我想使用 XML 颜色文件。
如果你想使用 AppCompat 中的任何 API,你需要扩展 AppCompatActivity
,包括使用 XML 颜色文件更改 light/dark 模式主题,通过 AppCompatDelegate
APIs.
如果用户决定覆盖其 OS 级别设置并从 colors
中读取值,我想以编程方式更改 Compose 中用户设置的 light/dark 主题和 night/colors
个文件。
Jetpack compose 默认情况下会扩展 ComponentActivity
,因为扩展 AppCompatActivity
会扩展 FragmentActivity
,这在执行仅 Compose 应用程序时不需要。
当我扩展 ComponentActivity
时,更改 light/dark 模式的 AppCompatDelegate
方法不再起作用,因为我没有扩展 AppCompatActivity
例如AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
如果我改为扩展 AppCompatActivity
,它会像您期望的那样工作。
当我不需要时扩展 AppCompatActivity
似乎很愚蠢,但我找不到任何其他方法来告诉撰写应用程序使用基于用户的正确 xml 值输入?
我是不是遗漏了什么,或者这个功能还不存在,我需要扩展 AppCompatActivity
Compose 具有我可以更改的编程主题,但我想使用 XML 颜色文件。
如果你想使用 AppCompat 中的任何 API,你需要扩展 AppCompatActivity
,包括使用 XML 颜色文件更改 light/dark 模式主题,通过 AppCompatDelegate
APIs.