我正在尝试为NavigationView创建一个自定义选择器,但是它没有任何作用。这是我的代码:

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


选择器是state_list_drawer_background.xml,这是代码:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Checked state -->
    <item android:drawable="@drawable/background_checked" android:state_checked="true" />
    <!-- This is the default background color -->
    <item android:drawable="@drawable/background_normal" />
</selector>


我只是可以看到透明选择器,而不是自定义选择器。然后,我发现了对NavigationView的限制,如记录在here中:


  NavigationView的itemBackground属性无法正确处理该项目的检查状态:某种程度上,所有项目都被突出显示,或者都不被选中。这使得该属性对于大多数应用程序基本上不可用。


但是,在某些开发人员上可以设置自定义选择器,例如Dark Theme上的tTorrent应用。我不知道他们怎么做!

谁能帮我解决这个问题?

提前致谢。

最佳答案

请填写https://code.google.com/p/android/issues/list上的错误报告。

我敢打赌,tTorrent不使用NavigationView来实现主菜单。
我也不是,我发现创建自己的自定义布局更容易,更灵活。

关于android - app:itemBackground属性无法按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31208179/

10-14 09:29