0

收件箱应用程序具有导航抽屉。单击任何导航抽屉项目时,会加载一个片段(很可能),并且在此事务期间,应用程序主题会发生变化。更改应用程序主题需要在活动的 onCreate() 方法中的 setContentView(..) 之前调用 setTheme() 方法。超级流畅的 UI 指示片段的使用,因此如何在不重新创建父活动的情况下实现这一点(否则肯定会有延迟)。

贪睡片段hase oragne like主题

收件箱片段像他们一样有蓝色

4

2 回答 2

0

如果您在更改页面时仔细观察,两种颜色之间会有轻微的渐变。这可能表明他们有一个独立于主题的系统来重新着色所有 UI 元素。

我的一个应用程序具有非常相似的颜色更改功能,我只是设置了一些方法来手动将相关颜色重新应用于每个 UI 元素。当然,谷歌可能有一些超级巧妙的方法,他们永远不会与任何人分享。

于 2018-02-23T13:40:02.630 回答
0

您实际上可以更改主题的样式,但只能在调用setContentView(@ResId int)方法之前。大概是这样的?

getTheme().applyStyle(isDashUser ? R.style.redStatusBar : R.style.blackStatusBar, true);
setContentView(R.layout.my_activity);
于 2018-02-23T12:34:16.690 回答