android使用setTheme的方式实现主题切换

theme的意思即风格,在android中你可以理解成是一整套属性的集合,设置了theme可以看做为为APP的一些全局的变量赋值,然后之后的界面显示会使用这些值来显示出相应的效果。
设置theme方式实现主题切换的详细步骤在这篇文章已经有详细描述,我就不再赘述了,这里介绍一下设置theme方式实现主题切换的一些实现细节。

上边那个博文中也提到了,设置theme要在设置activity的显示内容之前。网上有人说是可以调用recreate方法重启activity,但是重启的时候有闪动并且当前的状态也不太好保存,所以并不是好的解决方法。

设置theme的整体思路是正确的,当前的theme标记要保存在本地,每个activity启动的时候在setContentView之前取出该标记并调用setTheme方法设置theme即可。而主题切换的功能其实是改变了这个保存的标记,但是为了让用户能意识到主题已经切换了,在主题切换所在的activity就需要立即应用到这个已经变化了的主题。这里有两种方式:一种是暴力方式,即按照切换后的主题方案分别设置当前界面所有可见元素的属性,因为设置主题的界面通常只有一个所以一次设置之后不会有过多的这种繁琐的操作;另外一种是使用fragment,fragment也可以设置theme,代码如下:

@Override
    public View on
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值