Как разместить элемент в панели навигации в Android

#android #xml #menu #navigation-drawer

#Android #xml #меню #навигация-панель

Вопрос:

Я хочу создать панель навигации со значками и текстом, отображаемыми следующим образом: изображение с отображением значка в блоке

Моя панель навигации :

 <android.support.design.widget.NavigationView
    android:id="@ id/navigationView"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@drawable/drawer_background"
    app:headerLayout="@layout/navigation_drawer_header"
    app:itemIconTint="@color/white"
    app:itemTextColor="@color/white"
    app:menu="@menu/navigation_drawer_items" />
  

И мое меню выглядит следующим образом :

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

        <!-- todo: une page d'accueil avec les plus grosse cote, une preview du bilan (cardview? ...)-->

        <item
            android:id="@ id/navItemHome"
            android:icon="@drawable/ic_home_black_24dp"
            android:title="@string/action_home"/>

        <item
            android:id="@ id/navItemParisTermine"
            android:icon="@drawable/ic_home_black_24dp"
            android:title="@string/actionParisTermine"/>

        <item
            android:id="@ id/navItemAffiliation"
            android:icon="@drawable/ic_home_black_24dp"
            android:title="@string/actionAffiliation"/>

        <item
            android:id="@ id/navItemBilan"
            android:icon="@drawable/ic_home_black_24dp"
            android:title="@string/actionBilan"/>

        <item
            android:id="@ id/navItemContactDeveloppeur"
            android:icon="@drawable/ic_home_black_24dp"
            android:title="@string/actionContactDeveloppeur"/>

    </group>


</menu>
  

Извините за мой английский и спасибо за ваше внимание!

Комментарии:

1. что не работает в вашем коде?

Ответ №1:

Вместо использования меню в панели навигации создайте пользовательский макет

 <android.support.design.widget.NavigationView
android:id="@ id/navigation"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

  // CREATE YOUR LAYOUT HERE 

</LinearLayout>
  

Я надеюсь, ты это понял.
Не беспокойтесь о своем английском, никто не должен смеяться, когда кто-то изучает новый язык, это просто означает, что он знает другой

Ответ №2:

Меню довольно ограничено в настройке. В этом случае вам, вероятно, вообще пришлось бы избавиться от menu. Для этого удалите эту строку:

   app:menu="@menu/navigation_drawer_items"
  

Вы можете полагаться на заголовок панели навигации и реализовать пользовательский вид с иконками, как показано в примере.
В вашем представлении навигации есть эта строка:

 app:headerLayout="@layout/navigation_drawer_header"
  

Итак, перейдите к navigation_drawer_header и примените к нему пользовательский макет.