我正在使用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标志。