如何在导航视图中定位菜单项?

时间:2015-06-03 07:41:47

标签: android navigationview

我的问题与Navigation View最近发布的Design Support Library有关。 menu

我想将Log In置于Navigation View的底部,我该怎么做? 我的菜单XML现在看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/navigation_sub_item_1"
            android:icon="@drawable/ic_action_event"
            android:title="@string/home" />
        <item
            android:id="@+id/navigation_sub_item_2"
            android:icon="@drawable/ic_action_person"
            android:title="@string/profile" />
        <item
            android:id="@+id/navigation_sub_item_3"
            android:icon="@drawable/ic_action_labels"
            android:title="@string/tags" />
        <item
            android:id="@+id/navigation_sub_item_4"
            android:icon="@drawable/ic_action_settings"
            android:title="@string/log_in" />
    </group>

</menu>

这是我的布局:

     <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        android:background="@color/white_1000">

        <include
            android:id="@+id/toolbar"
            layout="@layout/toolbar" />

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

            <FrameLayout
                android:id="@+id/content_frame"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" />

            <android.support.design.widget.NavigationView
                android:id="@+id/main_drawer"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="start"
                app:headerLayout="@layout/drawer_header"
                app:menu="@menu/drawer_menu" />

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

</RelativeLayout>

2 个答案:

答案 0 :(得分:7)

你想要你的&#34;登录&#34;要在导航视图底部修复的项目?

您可以通过在NavigationView中嵌套其他视图/布局来实现此目的。 NavigationView扩展了FrameLayout,因此您可以将其包装在子视图中。

我在NavigationView页脚here上发布了更多信息。另请参阅该帖子中的其他答案以获取更多布局选项。

修改

仅供参考:如果您使用&#34;固定页脚&#34;方法,您基本上是从菜单中删除页脚项目(例如&#34;在您的示例中登录&#34;)。这意味着您必须自己实施点击和其他处理程序。

答案 1 :(得分:0)

我认为导航菜单就像列表视图一样。所以项目将被放在一个列表中。

如果您想将一个项目放在底部,您可以在布局xml中的NavigationView标签内进行自定义