警告: この質問の XML は間違っています。混乱する前に回答を読んでください。
久しぶりに壁に頭ぶつけました。次の投稿は主題に光を当てましたが、私の問題を解決できませんでした: Android ListView State List not show default item background and ListView item background via custom selector
リスト項目を選択すると、適切な 9 パッチの背景が完全に表示されますが、最初に表示されるデフォルトの 9 パッチの背景を取得できません。どういうわけかデフォルトのアイテムの背景を設定する必要があるように思えますが、その方法がわかりません。
リストビュー:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/shopListHeader"
/>
<ListView
android:id="@+id/shopList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:dividerHeight="0px"
android:divider="#FFFFFFFF"
android:listSelector="@drawable/shop_list_selector"
/>
</LinearLayout>
セレクタ:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:visible="true">
<!-- the list items are enabled and being pressed -->
<item
android:state_pressed="true"
android:drawable="@drawable/shop_list_item_pressed" />
<item
android:state_selected="true"
android:textColor="#FFFFFFFF" />
</selector>
バックグラウンド:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:visible="true">
<item
android:state_selected="true"
android:drawable="@android:color/transparent" />
<item
android:drawable="@drawable/shop_list_item" />
</selector>
ご覧のとおり、参考文献から例を簡単に説明しました。
また、Background セレクターがどこにも参照されていないことに気付くかもしれません。私はそれをランダムな場所に投げ始めました(アプリが追加をコンパイルした場合、効果がないか、強制的に閉じられます)
また、アイテムが選択されているが押されていないときに、テキストの色が黒と灰色に変わるのを止めようとしました(リストをスクロールすることで実行できます)。私の背景は中央が黒くなるので、選択するとテキストが部分的に見えなくなります。私が知る限り、その追加 (セレクターの最後の項目ノード) は何もしません。
この途方もなく時間のかかる機能を機能させることについて、誰か考えがありますか?