Как расположить пункты меню в представлении навигации?

Мой вопрос связан с недавно выпущенным Navigation View от Design Support Library. меню

Я хочу расположить 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>

person filipp.kowalski    schedule 03.06.2015    source источник
comment
Для установки положения меню навигации [см. этот ответ] [1] [1]: stackoverflow.com/a/31753244/4395114   -  person Mansukh Ahir    schedule 31.07.2015


Ответы (2)


Вы хотите, чтобы ваш пункт «Войти» был закреплен в нижней части окна навигации?

Вы можете сделать это, вложив дополнительные представления/макеты в NavigationView. NavigationView расширяет FrameLayout, поэтому вы можете обернуть его вокруг дочерних представлений.

Я разместил дополнительную информацию о нижних колонтитулах NavigationView здесь. Также см. другие ответы в этом сообщении для получения дополнительных вариантов макета.

Изменить

К вашему сведению: если вы используете подход «фиксированный нижний колонтитул», вы в основном удаляете элемент нижнего колонтитула (например, «Войти» в вашем примере) из меню. Это означает, что вы должны реализовать клики и другие обработчики самостоятельно.

person hungryghost    schedule 07.06.2015

Я думаю, что меню навигации работает как список. Таким образом, элементы будут помещены в список.

Если вы хотите, чтобы один элемент был размещен внизу, вы можете настроить тег NavigationView в макете xml.

person Muthukrishnan Suresh    schedule 03.06.2015