如何使用Theme.MaterialComponents隐藏状态栏和导航栏

时间:2019-10-02 09:23:11

标签: android android-statusbar material-components-android

我在隐藏应用程序中的状态和导航栏时遇到一些问题。

假设:

  • 使用lib com.google.android.material:material:1.1.0-alpha10
  • 使用样式Theme.MaterialComponents.Light.NoActionBar

类似

的解决方案
window.apply {
      clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
       addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
        } else {
            decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        }
        statusBarColor = Color.TRANSPARENT
}

不能正常工作

1 个答案:

答案 0 :(得分:0)

  1. 在styles.xml中创建新主题:
CharFeild
  1. 将此主题应用于清单(用于所需的活动)
 <style name="AppTheme.NoActionBar" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="android:windowBackground">@color/white</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="windowNoTitle">true</item>
</style>