상태 표시 줄 아래에 겹치는 툴바
내 활동에 appcompat v21 툴바를 갖고 싶습니다. 그러나 구현중인 툴바는 상태 표시 줄 아래에서 겹칩니다. 어떻게 고칠 수 있습니까?
활동 레이아웃 XML은 다음과 같습니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<FrameLayout
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
툴바보기 :
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
테마 스타일 :
<style name="AppTheme" parent="MaterialNavigationDrawerTheme.Light.DarkActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
android:fitsSystemWindows="true"
레이아웃의 루트보기에서 사용하십시오 (귀하의 경우 LinearLayout). 그리고 android:fitsSystemWindows
인
상태 표시 줄과 같은 시스템 창을 기반으로 뷰 레이아웃을 조정하는 내부 속성입니다. true 인 경우,이보기의 패딩을 조정하여 시스템 창의 공간을 확보하십시오. 이보기가 포함되지 않은 활동 인 경우에만 적용됩니다.
부울 값 ( "true"또는 "false")이어야합니다.
이 유형의 값을 포함하는 자원 ( "@ [package :] type : name"형식) 또는 테마 속성 ( "? [package :] [type :] name"형식)에 대한 참조 일 수도 있습니다. .
This corresponds to the global attribute resource symbol fitsSystemWindows.
Just set this to v21/styles.xml file
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
and be sure
<item name="android:windowTranslucentStatus">false</item>
None of the answers worked for me, but this is what finally worked after i set android:fitSystemWindows
on the root view(I set these in styles v21):
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentStatus">false</item>
Make sure you don't have the following line as AS puts it by default:
<item name="android:statusBarColor">@android:color/transparent</item>
For me, the problem was that I copied something from an example and used
<item name="android:windowTranslucentStatus">true</item>
just removing this fixed my problem.
I removed all lines mentioned below from /res/values-v21/styles.xml and now it is working fine.
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="windowActionBar">false</item>
<item name="android:windowDisablePreview">true</item>
<item name="windowNoTitle">true</item>
<item name="android:fitsSystemWindows">true</item>
None of the answers worked for me, but this is what finally worked after i set android:fitsSystemWindows="false"
부모 활동 레이아웃 파일에서 그것은 많은 장소에서 제안되지 않지만 그것은 나를 위해 일하고 내 하루를 저장합니다.
구글 문서에 따르면, 앱 테마에 fitsSystemWindows 속성을 사용해서는 안되며 레이아웃 파일에 사용하기위한 것입니다. 테마에서 사용하면 토스트 메시지에 문제가 발생할 수 있습니다.
<item name="android:fitsSystemWindows">true</item>
올바른 방법을 사용하는 예와 windowTranslucentStatus 에서도 잘 작동합니다 .
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<include layout="@layout/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</include>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="@color/white"
android:animateLayoutChanges="true"
app:headerLayout="@layout/navigation_drawer_header"
app:menu="@menu/navigation_drawer_menu" />
</android.support.v4.widget.DrawerLayout>
스타일 또는 스타일에서 아래 줄 제거 (21)
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowTranslucentStatus">false</item>
참고 URL : https://stackoverflow.com/questions/29738510/toolbar-overlapping-below-status-bar
'programing tip' 카테고리의 다른 글
파일 크기가 구성된 제한 (2560000)을 초과합니다. 코드 통찰력 기능을 사용할 수 없습니다 (0) | 2020.06.18 |
---|---|
for 루프 중에 목록 항목을 수정하는 방법은 무엇입니까? (0) | 2020.06.18 |
파이썬에서 zip의 역함수는 무엇입니까? (0) | 2020.06.18 |
사전의 순서는 왜 임의적인가? (0) | 2020.06.18 |
cmd.exe에 대한 sed like utility가 있습니까? (0) | 2020.06.18 |