在工具栏下设置导航抽屉

时间:2015-12-06 10:13:11

标签: android android-studio navigation-drawer toolbar

我的问题很简单。

我创建了导航抽屉活动。抽屉打开时看起来像这样: Navigation drawer covers the toolbar

我希望抽屉位于工具栏下方,所以我会看到“后退箭头”,如下所示: enter image description here

从我见过的其他项目中,我认为可以通过使用“FrameLayout”来完成。 “nav_header”布局包含一个FrameLayout,它覆盖整个屏幕但工具栏。我只是想不通如何做到这一点:

As you can see, the FrameLayout does not cover the toolbar

P.S。 如何设置导航抽屉的宽度? 我希望它更窄...

1 个答案:

答案 0 :(得分:5)

关于导航抽屉到工具栏的定位,正如@Stankovitch所指的那样, - 它只是一个关于活动XML中UI元素排序的问题

我打赌,你现在有这样的事情:

<android.support.v4.widget.DrawerLayout>
    <RelativeLayout>
         <android.support.v7.widget.Toolbar/>
         <FrameLayout/> <!-- Screen content-->
    </RelativeLayout>
    <android.support.design.widget.NavigationView/> <!-- drawer content-->
</android.support.v4.widget.DrawerLayout>

所以你需要把它重写为:

    <RelativeLayout>
         <android.support.v7.widget.Toolbar/>
         <android.support.v4.widget.DrawerLayout>
             <FrameLayout/> <!-- Screen content-->
             <android.support.design.widget.NavigationView/> <!-- drawer content -->
         </android.support.v4.widget.DrawerLayout>
    </RelativeLayout>

关于宽度 - 只需明确指定所需的宽度:

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="100dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer" />

上面的抽屉宽100dp。