AppCompatActivity提供了切换昼夜模式的api因此不需要我们再去自己写一套逻辑增加多余代码。
流程:
子view出发改变,activity调用v7AppCompatAcivity自带的setLocalNightMode()设置
recreate()重绘;
但这里有一个问题就是重绘会有一瞬间的闪烁 因为界面销毁重新绘制。为了用户友好在主题里增加了item “android:windowAnimationStyle” android:style/Animation.Toast
的动画属性。就不会那么突兀了
流程是这样,具体也简单 只需要新加value-night文件夹就可以了