gpt4 book ai didi

android - 是否可以以编程方式更改配置 ui 模式?

转载 作者:行者123 更新时间:2023-12-05 00:18:01 25 4
gpt4 key购买 nike

我正在开发一个可以在两种类型的设备上运行的 Android 应用程序:电话、电视和电视盒。为此,我创建了带有 TV 修饰符的资源(例如,将根据 uimode 自动更改的尺寸中的 textSizes),但问题是电视盒使用移动设备而不是电视。如何更改应用程序启动时的 uimode 以便将尺寸与电视修改器一起使用?
我已经尝试过这个,但它不起作用。

config.uiMode = Configuration.UI_MODE_TYPE_TELEVISION
resources.updateConfiguration(config, resources.displayMetrics)

最佳答案

终于,我找到了解决办法!也许对某人有帮助!
所以,我必须把它放到attachBaseContext而不是 onCreate

override fun attachBaseContext(context: Context?) {
super.attachBaseContext(context)

if (context != null) {
SettingsData.initDeviceType(context)

if (SettingsData.deviceType == DeviceType.TV) {
resources.configuration.uiMode = uiMode
resources.configuration.setTo(resources.configuration)
}
}
}
此外,切换到另一种设备模式后,您必须重新加载 Activity 。我试过 finish() StartActivity(intent) ,但它不能正常工作。所以要修复它,我使用 工艺凤凰库:
    fun refreshActivity() {
ProcessPhoenix.triggerRebirth(this)
}
警告! 如果您使用 setRequestedOrientation在您的 MainActivity ,它可能会触发配置更改为旧的 uimode .

关于android - 是否可以以编程方式更改配置 ui 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70200166/

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