为选定的项目android抽屉设置自定义背景

时间:2018-10-14 04:09:36

标签: android navigationview

我正在尝试将自定义背景项设置为选中的背景项。并且我已经应用了一些解决方案,包括为NavigationView设置app:itemBackground,但是它的工作方式与我尝试activatedBackgroundIndicator的主题不同,但它对我也不起作用。是否有任何可能的解决方案,而无需在NavigationView中使用回收器视图。 Navigation item checked image

使用itemBackground:

  <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer"
        app:itemBackground="@drawable/navigation_item_selector"
        >


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

使用主题:

 <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer"
        app:theme="@style/ThemeOverlay.AppCompat.navTheme"
        />

主题:

<style name="ThemeOverlay.AppCompat.navTheme">

        <!-- Color of text and icon when SELECTED -->
        <item name="colorPrimary">@color/white</item>
        <item name="android:activatedBackgroundIndicator">@drawable/navigation_item_selector</item>

    </style>

选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"  android:state_checked="true">
        <shape android:shape="rectangle"  >
            <corners
                android:topLeftRadius="@dimen/radius_round_btn"
                android:topRightRadius="@dimen/radius_round_btn"
                />

            <solid android:color="@color/colorAccent"/>
        </shape>
    </item>
</selector>

0 个答案:

没有答案