Android无缝切换主题,动态换肤


说起Android的动态换肤方案,可谓是人云亦云,各有各的方法,鱼龙混杂,我实在是参考不来一个好的换肤方案。

于是准备自己搞一个。


在这里我是拒绝写多个style实现换肤的敲打


那么只能用Java代码来实现(话说这样是不是有点难度啊,答案是否定的,难倒是不难,就是稍微麻烦点)


首先简述一下整体的思路:


1.在Activity中的onCreate中,检查当前设置的theme样式(随意用什么方式实现存储,主要是拿到当前设定的样式)

2.开始setContentView,这里就要进行判断和语句分支了:if(mode1){...}else if(mode2){...},开始使用代码的方式为布局设定颜色等

3.新增 reloadView 接口,这样做的目的是在用户切换主题后重新设定布局颜色等,实现动态切换主题。


这样做的确是个不错的方法(个人感觉敲打),但是如果Activity中有一个listView,也可能有很多层嵌套的chilView,这样的话就有一些麻烦,每一个view都需要准备两种主题。。。。反正就是这样,动态换肤本来就是这么繁琐



Activity的问题解决了,可是Activity里还嵌套了Fragment怎么破?

别急,先看思路:


还是一样的套路,Fragment中新增ReloadView方法,目的也是起到一个刷新的作用,当宿主Activity被执行ReloadView方法时,也应当通知当前活动在Fragment栈中的对象,并调用Fragment中的ReloadView方法,执行动态换肤。。。




以上思路可以快速解决动态换肤,谢谢观看~



  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值