Entfernen Sie Schatten aus der Symbolleiste, wenn die Navigation Schublade ist Offen - Material-Design-support-Bibliothek
Ich die Umsetzung Material-Design in meine app mit einem navigation drawer. Unter all den unterschiedlichen Implementierungen des Nav. Schublade und Symbolleiste mit Material-Design (finden Sie in diesem Beitrag); I gewählt haben, halten Sie das app-Gefühl ähnlich wie die ICS/Halo-design und der Nav-Drawer slide-out unter der Symbolleiste. Das problem ist, dass die Symbolleiste blendet mit dem Schatten, wie der rest der Aktivität, wenn die nav-Schublade geöffnet ist. Wie würde ich die Symbolleiste abdunkelt? Wenn Sie sehen, dass das Bild in dem post den ich oben gelinkt habe ich mich nach #6, 3 oder 5, aber meiner sieht eher aus wie #9 jetzt.
Beispiel (aus post oben):
Was ich nach (keine Schatten auf der Symbolleiste):
Was ich derzeit bekommen (Symbolleiste verdunkelt, wenn nav Schublade geöffnet ist):
Hier ist der code für meine Haupttätigkeit 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"
android:fitsSystemWindows="true"
tools:context="com.funkhaus.navdrawer.app.MainActivity">
<!-- As the main content view, the view below consumes the entire
space available using match_parent in both dimensions. -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- We use a Toolbar so that our drawer can be displayed
in front of the action bar; Added for Material Design -->
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize" />
</FrameLayout>
<fragment android:id="@+id/navigation_drawer"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize"
android:fitsSystemWindows="true"
android:layout_gravity="start"
android:name="com.funkhaus.brewwerks.NavigationDrawerFragment" />
Der Bemerkenswerte Teil ist, dass die <FrameLayout>
mit der ID 'container'
ist, wo alle meine Fragmente sind aufgeblasen, und seine marginTop
wurde eingestellt, um die Höhe der Symbolleiste, so dass seine Inhalte werden unterhalb der Symbolleiste. Ebenso die Navigation Schublade fragment hat auch seine marginTop
auf die Höhe der Symbolleiste, so dass es gleitet unter ihm.
- Setzen Sie die Symbolleiste außerhalb der DrawerLayout.
- Von meinem Verständnis der
<DrawerLayout>
muss der root-Ansicht, wenn Sie mit dem Navigations Schublade - Die Wurzel von Ihrem Inhalt, ja. Nicht die Wurzel Ihrer Symbolleiste.
- Danke @alanv, lassen Sie mich wissen, wenn meine gepostete Antwort scheint vernünftig
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dank @alanv ich mein Problem behoben.
Mein post oben zeigt meine
activity_main.xml
code; ich habe es vereinfacht, um das entfernen der Symbolleiste Ansicht und entfernen dermarginTop
Formatierung:Erstellte ich eine
toolbar.xml
, die ich jetzt setContentView() auf meiner Haupttätigkeit, der<include>
's dieactivity_main.xml
oben:Schließlich in meine Tätigkeit ist
onCreate()
ichsetContentView()
auf dietoolbar.xml
:Den code unten ist für die darüberliegenden Symbolleiste navigation wie Google Mail APP-design.