gpt4 book ai didi

android - configuration.setLocale(locale) 不适用于 AppCompatDelegate.setDefaultNightMode

转载 作者:行者123 更新时间:2023-12-02 07:55:56 24 4
gpt4 key购买 nike

如果我使用 AppCompatDelegate.setDefaultNightMode 设置暗模式并且系统不是暗模式,则 Configuration.setLocale 不起作用。我更改语言环境,例如从 En 更改为 It,所有字符串仍然以系统语言显示。

如果我设置系统相同的NightMode(Android 10)是没有问题的。Android 9 或更低版本也存在同样的问题:如果我在应用程序中设置暗模式并更改上下文语言,则 Activity 将根据系统语言显示文本。

最佳答案

Kotlin 解决方案

override fun applyOverrideConfiguration(overrideConfiguration: Configuration?) {
overrideConfiguration?.let {
val uiMode = it.uiMode
it.setTo(baseContext.resources.configuration)
it.uiMode = uiMode
}
super.applyOverrideConfiguration(overrideConfiguration)
}

Java解决方案

@Override
public void applyOverrideConfiguration(Configuration overrideConfiguration) {
if (overrideConfiguration != null) {
int uiMode = overrideConfiguration.uiMode;
overrideConfiguration.setTo(getBaseContext().getResources().getConfiguration());
overrideConfiguration.uiMode = uiMode;
}
super.applyOverrideConfiguration(overrideConfiguration);
}

关于android - configuration.setLocale(locale) 不适用于 AppCompatDelegate.setDefaultNightMode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57973627/

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