2016-07-06 7 views
4

В настоящее время я разрабатываю приложение для Android с поддержкой NavigationView. Я должен задать вопрос так, как хочу: (1) Я хочу разделить навигационные элементы на две области: одну сверху сверху заголовка и одну в нижнем конце. (2) Я хочу удалить прокладку между разделителем и элементом под ним.Android NavigationView с внутренним интервалом

Как это выглядит против, как он должен выглядеть: How it looks vs how it should look

Я знаю, что есть способ, чтобы переопределить значение дополнения, которые будут фиксировать (2). Но это кажется грязным, и, возможно, есть еще один подход к достижению этого. Моя идея состояла в том, чтобы получить элемент «Настройки» и изменить его компоновку программно, но до сих пор я не нашел способ получить эту работу. Или мне действительно нужно построить нижний колонтитул?

Кроме того, я не совсем уверен, какие слова я должен искать в Google. Может быть, там уже есть легкий ответ.

Мой текущий код. Прямо сейчас нет изменений макета внутри Activity, поэтому я не добавил его.

activity_main.xml:

<android.support.v4.widget.DrawerLayout 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:id="@+id/main_drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context=".main.MainActivity"> 

    <!-- The content --> 
    <LinearLayout>...</LinearLayout> 

    <!-- The navigation drawer --> 
    <android.support.design.widget.NavigationView 
     android:id="@+id/main_navigationview" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="@android:color/white" 
     app:headerLayout="@layout/mainnav_header" 
     app:itemBackground="@drawable/menu_background" 
     app:itemIconTint="@color/menu_text" 
     app:itemTextColor="@color/menu_text" 
     app:menu="@menu/maindrawer"> 

    </android.support.design.widget.NavigationView> 

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

menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 

<group android:id="@+id/main_drawer_menu1" android:checkableBehavior="single"> 
    <item 
     android:id="@+id/main_navigationview_request" 
     android:checkable="false" 
     android:enabled="false" 
     android:icon="@drawable/ic_navigationdrawer_request" 
     android:title="@string/main_navigation_request" 
     app:actionLayout="@layout/menuitem_default" /> 
    <item 
     android:id="@+id/main_navigationview_invitations" 
     android:checked="true" 
     android:icon="@drawable/ic_navigationdrawer_invitations" 
     android:title="@string/main_navigation_invitations" 
     app:actionLayout="@layout/menuitem_default" /> 
    <item 
     android:id="@+id/main_navigationview_prev" 
     android:icon="@drawable/ic_navigationdrawer_previous" 
     android:title="@string/main_navigation_previnvites" 
     app:actionLayout="@layout/menuitem_default" /> 
    <item 
     android:id="@+id/main_navigationview_info" 
     android:icon="@drawable/ic_navigationdrawer_info" 
     android:title="@string/main_navigation_info" 
     app:actionLayout="@layout/menuitem_default" /> 
</group> 
<group android:id="@+id/main_drawer_menu2" android:checkableBehavior="single"> 
    <item 
     android:id="@+id/main_navigationview_settings" 
     android:checked="true" 
     android:icon="@drawable/ic_navigationdrawer_settings" 
     android:title="@string/main_navigation_settings" 
     app:actionLayout="@layout/menuitem_default" /> 
    <item 
     android:id="@+id/main_navigationview_logout" 
     android:icon="@drawable/ic_navigationdrawer_logout" 
     android:title="@string/main_navigation_logout" 

     app:actionLayout="@layout/menuitem_caution" /> 
</group> 

+0

мы можем иметь свой код ?? –

+0

конечно, извините. В настоящее время это всего лишь два файла xml. Никаких изменений компоновки не происходит внутри операции – gtRfnkN

+0

Мне нравится тот, который находится справа, но это не проблема, которую я хочу обсудить. Я просто хочу найти способ сделать макет похожим на тот, который находится справа. – gtRfnkN

ответ

2

Эта линия удалить отступ между иконкой и текстом.

только добавить ниже линии в dimen.xml файл

<dimen tools:override="true" name="design_navigation_icon_padding">10dp</dimen> 
Смежные вопросы