关于dialog 切换主题的难题

在android 项目开发中,遇到一个比较难以解决的问题:在dialog已经显示的情况下,用户去手动切换主题:由白天模式切换到黑夜模式

众所周知,在主题切换时,有些切换方式(代码控制)会走重走activity 的onCreate ,或者

onConfigurationChanged(以这个居多)。但是如果dialog已经显示出来时,很多情况下区切换主题,dialog的颜色并没有切换,此时需要开发者手动去设置,具体如下

dialog 的root一般在activity或者fragment,所以在你收到onConfigurationChanged{

    changeSkin()

}

private void changeSkin(){

//1.拿到dialog中需要切换颜色的所有控件,例如

textView title = dialog.findViewById<TextView>(R.id.tv_title)

//2.主动获取当前的主题是啥getCurrentThemeMode

boolean isNightMode=getCurrentThemeMode()

//3.根据不同的主题,设置不同的颜色即可

if(isNightMode){

      title.setTextColor(getColor(R.color.text_color_night))

}else{

             title.setTextColor(getColor(R.color.text_color_day))

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值