如何设置滑入菜单(NavigationView / DrawerLayout)的宽度?

时间:2015-07-29 02:24:13

标签: android

我设置了NavigationView,这样每次按下汉堡包图标时,菜单都会从左侧滑入。我面临的问题是菜单覆盖了整个屏幕宽度,而不是我在XML中给出的任何值。当它打开时,一切都变暗了。它是一个透明的黑色背景(我猜是默认)。

<android.support.v4.widget.DrawerLayout
android:id="@+id/nav_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent">

    <fragment
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ListView
        android:id="@+id/list"
        android:entries="@array/menuitems"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="left">
    </ListView>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:menu="@menu/drawer"/>

</android.support.v4.widget.DrawerLayout>

如何让我的NavigationView只占用屏幕的某个宽度而不是全部?感谢任何建议。

编辑:

抽屉打开时的屏幕截图(因为你可以看到屏幕的整个宽度因抽屉的背景而变暗)

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,您的抽屉布局应该有两个子视图。一个托管主要内容,一个将作为导航抽屉。在这种情况下,您的列表视图将作为导航抽屉出现。

另外,你错误地认为导航抽屉(在这种情况下是ListView)占据了整个空间。它只需要240 dp。主视图的其余部分将处于阴影中(默认行为)。如果您看到列表视图项之间的分隔线在哪里结束,您可以看到它仅占用240 dp。透明的背景似乎让你很困惑。