项目经验摘要

记录与整理,作为快速开发框架的雏形

Posted by 阿呆 on 2019-01-06

1.状态栏透明设置
网上很多都存在问题,有空应该比较一下出现这种情况的原因,下面是出效果的代码

1
2
3
4
5
6
7
8
9
10
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
//window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);

}

但是上面的代码只能解决将状态栏隐藏并且保留状态栏文字的功能,而当我们自定义的头部布局是浅色的时,状态栏文字则不显示,所以,引出了下面这个问题

如何设置状态栏图标文字的颜色为深色?

解决方案:

2.利用 View.post(Runnable)来解决生命周期不确定的事情
在项目中遇到这样一个需求,需要发送一个广播到一个Fragment中,去设置一些View的状态,但是发现发送广播的时候Fragment并不一定已经渲染了视图,导致会出现接受不到广播的情况,后来,我在post(Runnable)中发送广播,解决了这个问题。

友盟社会化分享