导航组件-fitsSystemWindows无法正常工作

时间:2019-05-28 20:51:16

标签: android kotlin

我正在使用SAA(单一应用程序活动)制作一个应用,并且我希望有一个渐变状态栏,并且使用与我的第一个视图相同的渐变。

我正在做一些测试,我无法查看状态栏,在我的父级布局中使用fitsSystemWindows为false。

看看我现在所拥有的:

   <?xml version="1.0" encoding="utf-8"?>
   <androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="false"
    tools:context=".MainActivity">

<fragment
        android:id="@+id/content"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:defaultNavHost="true"
        app:navGraph="@navigation/nav_graph"
/>

这是我的片段:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:background="#c2c2c2"
          android:fitsSystemWindows="false"
          android:layout_width="match_parent"
          android:layout_height="match_parent">

</LinearLayout>

我要在我的活动中设置这个:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        val window = window
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
        window.statusBarColor = Color.TRANSPARENT
    }

样式

   <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">false</item>

PS: 当我FLAG_LAYOUT_NO_LIMITS运行正常时,唯一的问题是当我具有表单布局并且无法调整屏幕大小时。因此,我知道使用FLAG_LAYOUT_NO_LIMITS标志。

0 个答案:

没有答案