NavigationView가 전체 화면에 표시되면 status bar와navigation bar를 통해서도 어두운 현상의 해결 방법이 있습니다
6150 단어 NavigationViewAndroidAndroid10
https://developer.android.com/guide/navigation/gesturenav#transparent-bars
https://developer.android.com/guide/navigation/gesturenav#vis-flag
항목에서 사용할 수 있는 모든 패밀리를 봅니다.
status bar와navigation bar는 모두 스타일에서 색상을 @android: color/transparent, 자바에서 SystemUiVisibility로 설정합니다.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION、View.SYSTEM_UI_FLAG_LAYOUT_STABLE、View.SYSTEM_UI_FLAG_LAYOUT_전체 화면으로 표시할 수 있도록 FULLSCREEN 플래그를 설정합니다.
하지만 Navigation View만 왠지 위아래 staus bar 부분과navigation bar 부분에 그림자를 남긴다.
※ 이해하기 쉽도록 Drawer Layout의 하위 View는 Navigation View에만 의존할 수 있으며 펼쳐져도 배경이 어두워지지 않습니다.
(android10을 지원하지만 렌즈를 뺏는 데 사용되는 단말기는android9의 단말기)
해결 방법
NavigationView에 app:insetForeground 속성을 추가합니다.
before<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#afeeee"
android:fitsSystemWindows="false">
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="left"
android:background="#00ff00"
android:fitsSystemWindows="false"/>
</androidx.drawerlayout.widget.DrawerLayout>
</layout>
after<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#afeeee"
android:fitsSystemWindows="false">
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="left"
android:background="#00ff00"
android:fitsSystemWindows="false"
app:insetForeground="@android:color/transparent" />
</androidx.drawerlayout.widget.DrawerLayout>
</layout>
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#afeeee"
android:fitsSystemWindows="false">
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="left"
android:background="#00ff00"
android:fitsSystemWindows="false"/>
</androidx.drawerlayout.widget.DrawerLayout>
</layout>
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#afeeee"
android:fitsSystemWindows="false">
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="left"
android:background="#00ff00"
android:fitsSystemWindows="false"
app:insetForeground="@android:color/transparent" />
</androidx.drawerlayout.widget.DrawerLayout>
</layout>
왜?
NavigationView는 Scrim Insets FrameLayout의 하위 클래스입니다. 이것은 단말기의 status bar와navigation bar의 높이 부분을 app:inset Foreground에서 지정한 색으로 칠했기 때문입니다.( http://y-anz-m.blogspot.com/2015/06/scriminsetsframelayout-androidbackground.html )
Reference
이 문제에 관하여(NavigationView가 전체 화면에 표시되면 status bar와navigation bar를 통해서도 어두운 현상의 해결 방법이 있습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kkkkan/items/d856744b574bedd5011f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(NavigationView가 전체 화면에 표시되면 status bar와navigation bar를 통해서도 어두운 현상의 해결 방법이 있습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kkkkan/items/d856744b574bedd5011f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)