4.4以上状态栏透明方法

来源:互联网 发布:中石油48元 知乎 编辑:程序博客网 时间:2024/06/05 15:36


1.在setContentView(R.layout.xxx)之前调用

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {    //透明状态栏    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);    //透明导航栏    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);}
如此,整个布局向上移动,状态栏信息透明在布局之上
2.如果仅仅需要状态栏透明,布局不向上移动,仅需要在1的步骤之后,在R.layout.xxx布局中最外层的布局加上
  1.  android:fitsSystemWindows="true"
  2.     android:clipToPadding="true"即可
3.以上效果已经和5.0以上的效果一直 5.0以上的效果还可以使用
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){    Window window = getWindow();    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);    window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);    window.setStatusBarColor(Color.TRANSPARENT);    window.setNavigationBarColor(Color.TRANSPARENT);}

0 0