以两种方式设置 沉浸式状态栏
1,使用 StatusBarCompat 库
//沉浸式状态栏 api ('com.github.niorgai:StatusBarCompat:2.1.3', { exclude group:'com.android.support' })
然后在activity 中 设置
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Latte.getConfigurator().withActivity(this); //隐藏ActionBar ActionBar actionBar = getSupportActionBar(); if (actionBar!= null){ actionBar.hide(); } /** * 一句话 实现沉浸式状态栏, */ StatusBarCompat.translucentStatusBar(this,true); }
2,使用代码的方式来实现:
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Latte.getConfigurator().withActivity(this); ActionBar actionBar = getSupportActionBar(); if (actionBar!= null){ actionBar.hide(); } //当版本大于 5.0 时 实现沉浸式 状态栏 if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); getWindow().setStatusBarColor(Color.TRANSPARENT); }else { //勉强适配 4.1 到5.0 View decorView = getWindow().getDecorView(); @SuppressLint("InlinedApi") int option = View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(option); } }
然后就可以自定义 toolbar ,使用 toolbar 有可能会出现 toolbar 和状态栏重叠。解决方法为。