のカスタム セレクターを作成しようとしています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
に記載されている制限を見つけました:
NavigationView の itemBackground 属性は、項目のチェック状態を正しく処理しません。どういうわけか、すべての項目が強調表示されているか、どれも強調表示されていません。これにより、この属性は基本的にほとんどのアプリで使用できなくなります。
ただし、一部の開発者はカスタム セレクターを設定できます。たとえば、ダーク テーマのtTorrentアプリです。彼らはどうやってそれを行うことができるのだろうか!
誰でもこの問題を解決するのを手伝ってもらえますか?
前もって感謝します。