Android Studio を使用して Navigation Drawer を実装しましたが、現在変更中のセクションを示すために使用される青色を取得できません。
私は多くのことを試しましたが、現在次のような listSelector を使用しています:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@color/selected" />
<item android:state_pressed="true" android:drawable="@color/highlight" />
</selector>
私も試しstate_checked
ました。state_pressed
この状況では機能しますが、現在選択されているアイテムはまだ青色です。
編集:私はこれをさらに調べており、アダプターが作成されたときに渡されるコンテキストはgetActionBar().getThemedContext()
、アクションバースタイルに割り当てる適切な属性を見つけることができれば、そこから変更できると考えています. いくつかの異なる属性を試しましたが、うまくいきませんでした。正確な属性を知っている人はいますか?
私も気づいた
<item name="android:activatedBackgroundIndicator">@drawable/nav_listview_selector</item>
私のテーマの主要部分で色getActionBar().getThemedContext()
をgetActivity.getBaseContext
変更できますが、これは正しい方法ではないと思います。テーマコンテキストを使用する必要があると思います。したがって、誰かがどこactivatedBackgroundIndicator
に置くことができるかを知っていれば、それを使用することができますgetActionBar.getThemedContext()
EDIT2:
したがって、リストビューに使用されるテキスト ビューは SDK 内のもので、次のようになります。
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:background="?android:attr/activatedBackgroundIndicator"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
/>
だから私"?android:attr/activatedBackgroundIndicator"
はテーマレベルで変更しようとしましたが、チェック/選択/アクティブ化には効果がありませんが、押された場合には効果があります。これがなぜなのか誰か知っていますか?どうすれば変更できますか?