毕业设计心得与整理-APP-主题切换

Posted ruyan-yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了毕业设计心得与整理-APP-主题切换相关的知识,希望对你有一定的参考价值。

1.定义主体颜色:

在style自定义了三个属性:



他们并不是android自由的属性,他们是我自定义的属性。他们的定义写在attrs.xml里面

在这里定义过后,就可以在xml中直接使用,只需要引用进去就好
eg. android:background="?attr/appbg"

这样背景色就自动转换成了你设置的这个属性值。

2.设置主题颜色

activity 提供了一个方法 setTheme(int id) ,但是要注意这个要在 setContentView(int id) 之前调用。就是说我们要在视图显示之前就把颜色切换掉。也就是需要重启当前的activity。
除此之外,之前渲染过的视图也需要进行处理,也就是处理那些 “过时” 的 activity。我这里用的方法是清空我们的 back stack。

final Intent themeintent = getIntent();
themeintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(themeintent);

FLAG_ACTIVITY_NEW_TASK 是为要启动的activity新建一个任务堆栈。
FLAG_ACTIVITY_CLEAR_TASK 任何放置该activity的已存在的task里面 的activity都被清空。也就是清空过时的activity。









以上是关于毕业设计心得与整理-APP-主题切换的主要内容,如果未能解决你的问题,请参考以下文章

前端切换主题颜色的几种思路

前端切换主题

切换系统主题风格

flutter 完全使用GetX 主题切换 以及 自创建Widget的颜色随主题变化方案

产品经理的奇思妙想:根据手机壁纸自动切换App主题,真的来了

手机UI到底是啥 它和手机主题一样吗