Ich habe eine neue App mit Android Studio 2.0 erstellt und ich möchte meine Navigationsschublade unter der Toolbar
haben. Ich weiß, dass die Material Design-Spezifikationen sagen, dass es über der Toolbar
sein sollte, aber meine Schublade wird nicht so viele Einträge haben und ich möchte die nette Icon-Animation von Google sehen.NavigationView ohne grauen Rand bei der Verwendung von FitsSystemWindows
Ich habe versucht, zu bekommen, was ich will, indem ich die DrawerLayout
innerhalb der obersten Ebene CoordinatorLayout
.
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.company.app.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:openDrawer="start">
<include layout="@layout/content_main" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
</android.support.design.widget.CoordinatorLayout>
I android:fitsSystemWindow="true"
auf dem obersten Ebene Layout verwenden, so kann ich die Statusleiste tönt. Aber wenn ich das mache, hat die Navigationsschublade einen grauen oberen Rand.
Wenn ich es so, wie Google es (über der Toolbar), dann würde die Grenze in Ordnung sein, aber diese Art und Weise angegeben verwenden würde, es sieht einfach hässlich. Gibt es eine Möglichkeit, dies zu entfernen?
Ich experimentierte mit dem Überschreiben NavigationView.onInsetsChanged(Rect rect)
und war in der Lage, die Elemente an der Spitze zu platzieren, aber die graue Grenze blieb.
Was Sie mit "Tönung" in der Statusleiste bedeuten kann ? Diese Farbe kommt von Ihrem 'colorPrimaryDark' – Pztar
Ja, das stimmt. Um aber den Farbtoneffekt von 'colorPrimaryDark' zu erhalten, müssen Sie' android: fitsSystemWindow = "true" 'auf dem Wurzelelement verwenden. Und das verursacht diesen grauen Rand in 'NavigationView' – Saenic