通过这段代码
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
即可使状态栏透明,内容区域会延伸到状态栏,但是内容区域也跟着置顶了,如下图:
device-2019-10-08-162533.png
想要内容区域回到它该待的位置,可以选择2种方式:
1、在对应的xml文件最外层的ViewGroup中添加:android:fitsSystemWindows="true"
2、设置Toolbar的margin值:
//获取状态栏的高度
int statusBarHeight = TRStatusBarUtil.getStatusBarHeight(this);
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) toolbar.getLayoutParams();
layoutParams.topMargin = statusBarHeight;
toolbar.setLayoutParams(layoutParams);
这样就可以达到目的了,代码链接地址:
https://github.com/leihupqrst/status_bar
网友评论