Есть ли способ изменить цвет фона одного элемента из окна навигации? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть меню навигационной панели, как показано ниже:

<?xml version"1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:showIn="navigation_view">
    <group android:id="@+id/grp1"       android:checkableBehavior="single">
        <item
            android:id="@+id/nav_my_company"
            android:icon="@mipmap/ic_item_company_layer"
            android:state_checked="false"
            android:visible="false"
            android:title="@string/nav_my_company"/>
        <item
            android:id="@+id/nav_stock"
            android:icon="@mipmap/ic_item_stock_layer"
            android:state_checked="false"
            android:visible="false"
            android:title="@string/nav_stock"/>
        <item
            android:id="@+id/nav_discount"
            android:icon="@mipmap/ic_item_discount_layer"
            android:state_checked="false"
            android:visible="false"
            android:title="@string/nav_discount"/>
    </group>
</menu>

Я пытаюсь сделать так, чтобы у одного элемента был другой цвет фона (android: drawable = "@ color / myRedColor"), например:

 <item
            android:id="@+id/nav_stock"
            android:icon="@mipmap/ic_item_stock_layer"
            android:state_checked="false"
            android:visible="false"
            android:drawable = "@color/myRedColor"
            android:title="@string/nav_stock"/>

Но я не могу получить это.

Любые комментарии или предложения приветствуются.

Спасибо

Ответы [ 3 ]

0 голосов
/ 05 ноября 2018

Чтобы использовать преимущества Navigation Drawer и использовать пользовательские bg, вам необходимо написать собственный навигационный адаптер. Затем вы можете надуть любой макет, который вы хотите. создать класс, который расширяет RecyclerView.Adapter<NavigationAdapter.ViewHolder>.

0 голосов
/ 05 ноября 2018

Если вы хотите использовать теги элементов и сделать это, в качестве альтернативы вы можете попробовать BackgroundColorSpanand

s.setSpan (новый BackgroundColorSpan (Color.RED), 0, s.length (), 0);

0 голосов
/ 05 ноября 2018

ДА - вы можете создать файл xml и включить его в тег навигации:

<android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:layout_marginTop="?android:attr/actionBarSize">

        <include layout="@layout/a_main_navigation_content" />

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

и в a_main_navigation_content.xml вы можете создать textView или что угодно с вашими пользовательскими атрибутами.

и вам больше не нужны ваши пункты меню.

...