현재 재질 디자인 사양을 따르기 위해 탐색 서랍을 설정하고 있습니다. 나는 Chris Banes post (Material design checklist에서 사용 가능)을 이미 검사했고 사용자 정의 테마 등등에 나열된 모든 구현을 만들었으며 this question도 만들었지 만 그 중 어느 것도 내 앱 구조의 요구 사항을 충족시키지 못하는 것 같습니다.상태 표시 줄 아래의 머티리얼 디자인 서랍 : 두 개의 FrameLayouts가 하위 인 DrawerLayout을 사용하여 어떻게 구현합니까?
당신은 제목에서 짐작으로 내 DrawerLayout
어린이로 두 FrameLayout
의를 가지고있다 : (내가 필요하기 때문에 나는이 구조를 변경할 수 있음을 지적하는 것이 중요 내용에 대한 하나 서랍의 또 다른 NavigationDrawer의 내용을 업데이트하여 조각을 주요 내용으로 교환 할 수있는 능력을 유지하는 것).
문제는 예상되는 디자인을 달성하기 위해 모두를 엉망으로하지 않고 XML의 도구 모음 선언을 넣어 어디 DrawerLayout
두 아이을 필요로하기 때문에 내가 모르는 지금이다.
activity_main.xml는
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.myapp.MainActivity"
android:fitsSystemWindows="false"> <!-- Setting this one to true makes the status bar to have a non-transparent shitty background -->
<!--
As the main content view, the view below consumes the entire
space available using match_parent in both dimensions.
-->
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v7.widget.Toolbar
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
</FrameLayout>
<com.myapp.widget.ScrimInsetsFrameLayout
android:id="@+id/navigation_drawer"
android:layout_width="@dimen/navdrawer_width"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"/>
</android.support.v4.widget.DrawerLayout>
이 결과를 제공합니다 : 당신이 볼 수 으로, 상태 표시 줄 내용이 전체 화면으로 그려되기 때문에 (? 어쩌면 맞습니다)이 완전히없는 것 같다. 앱이 시작되면 툴바가 그려지고 (staus bar 패딩없이 렌더링되어 시스템 아이콘이 엉망이됩니다)지도 콘텐츠가 갑자기 오버레이됩니다. 현재 Android 4.4.4를 실행 중이지만 Android 5.0이있는 에뮬레이터에서와 동일합니다. 이 도구 모음과 DrawerLayout
와 루트 LinearLayout
을 넣어 제안 된 또 다른 유래 질문에
FrameLayout
을 루트로 사용하려고 시도했지만 결과가 좋지 않습니다.
이 문제를 해결하는 방법에 대한 조언이 있으십니까? 컨테이너가 someLayout에 툴바 아래있는 LinearLayout
내가 레이아웃의 일부 인수를 ommited하지만 그 시점이 아니기 때문에
활동 테마/스타일이 무엇입니까? –
그것의 또한 Theme.AppCompat.Light.NoActionBar와 <항목 이름 = "windowActionBar"> 거짓, <항목 이름 = "windowActionModeOverlay"> 사실, 그리고 <항목 이름 = "안드로이드 : windowTranslucentStatus"> values-에 대한 사실 v19. – fiipi
"NoActionBar"테마를 사용하고 있지만 ActionBar/ToolBar를 갖고 싶습니까? 그래서 "Theme.AppCompat.Light.DarkActionBar"를 사용하십시오. 즉, –