使用 viewBinding 时 SetTheme 不起作用

Posted

技术标签:

【中文标题】使用 viewBinding 时 SetTheme 不起作用【英文标题】:SetTheme does not work when using viewBinding 【发布时间】:2021-11-18 09:11:27 【问题描述】:

我的应用中有两个主题(深色和浅色模式),我可以毫无问题地更改主题。 但是,由于我使用了 viewBinding,所以 setTheme() 函数不起作用,我无法再更改活动的主题。 有谁知道问题出在哪里?

这是我的旧代码(有效)

setTheme(getAppTheme());
setContentView(R.layout.my_layout);

还有新代码(不起作用)

setTheme(getAppTheme());
setContentView(binding.getRoot());

感谢您抽出宝贵时间阅读,并为我的英语不好感到抱歉:)

【问题讨论】:

你是如何初始化你的绑定变量的? 【参考方案1】:

您必须在设置主题之前初始化绑定变量。设置主题后,您必须初始化活动绑定,才能正常工作。

setTheme(getAppTheme());
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.getRoot());

【讨论】:

我在设置主题后初始化了绑定变量,问题解决了。非常感谢您快速而正确的回答。

以上是关于使用 viewBinding 时 SetTheme 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

setTheme(Theme_NoDisplay)巧妙使用

ViewBinding使用入门

如何在 ViewBinding 中使用片段?

DataBinding的双向绑定实现原理

ViewBinding简单使用

Android ViewBinding使用详解