普通沉浸式状态栏实现

2019-10-08  本文已影响0人  EnzoRay

通过这段代码

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

上一篇下一篇

猜你喜欢

热点阅读