NavigationView: как вставить разделитель без подгруппы?
Как я могу поместить разделитель без заголовка Подгруппа в новый NavigationView?
<?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/drawer_armario"
android:icon="@drawable/armario"
android:title="@string/armario" />
<item
android:id="@+id/drawer_amigos"
android:icon="@drawable/amigos"
android:title="@string/amigos" />
</group>
<item android:title="Configuración">
<menu>
<item
android:id="@+id/drawer_ajustes"
android:icon="@drawable/ajustes"
android:title="@string/ajustes" />
<item
android:id="@+id/drawer_ayuda"
android:icon="@drawable/ayuda"
android:title="@string/ayuda" />
<item
android:id="@+id/drawer_sign_out"
android:icon="@drawable/sign_out"
android:title="@string/sign_out" />
</menu>
</item>
Я хотел бы поставить строку между элементами amigos и ajustes без заголовка Configuración.
Спасибо!!!
Ответы
Ответ 1
Все, что вам нужно сделать, это определить group
с уникальным идентификатором. Я просмотрел реализацию NavigationView
, и он будет создавать разделитель каждый раз, когда будет изменен идентификатор группы.
например.
<group android:id="@+id/my_id">
<!-- Divider will appear above this item -->
<item ... />
</group>
Ответ 2
Я пробовал это, и он работал
См. реализацию из строки 122-125
Это мой файл меню, и он создает разделитель:
<menu 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"
tools:context=".MyFirstMNCActivity">
<group android:id="@+id/grp1">
<item
android:id="@+id/navigation_item_1"
android:checked="true"
android:icon="@drawable/ic_home"
android:title="@string/navigation_item_1" />
</group>
<group android:id="@+id/grp2">
<item
android:id="@+id/navigation_item_2"
android:icon="@drawable/ic_home"
android:title="@string/navigation_item_2" />
</group>
</menu>
Ответ 3
NavigationView navigationView = (NavigationView) findViewById(R.id.navigation);
NavigationMenuView navMenuView = (NavigationMenuView) navigationView.getChildAt(0);
navMenuView.addItemDecoration(new DividerItemDecoration(appContext,DividerItemDecoration.VERTICAL_LIST));
Вот суть DividerItemDecoration
DividerItemDecoration.java
Ответ 4
Использование xml
<android.support.design.widget.NavigationView
...
app:itemIconTint="@android:color/black"
... />
Программного
yourNavigationView.setItemIconTintList(null);
Я считаю, что это хороший ответ.
Лучшая удача.