ListView
選択した行を強調表示するために、各項目の背景としてドローアブル セレクターがあります。Ice Cream Sandwich ではすべて正常に動作しますが、Jelly Bean では動作しないようです。どのような変更が機能を停止させた可能性があるか、およびそれを修正するために何をする必要があるかを示すドキュメントが見つかりません。
ListView
機能しないということは、アイテムの背景色の行をクリックしても色が変わらないことを意味します@color/blue
が、ICS では変わります。
これは私が使用しているセレクターコードです (listing_selector.xml):
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true" android:drawable="@color/blue" />
<item android:state_pressed="true" android:drawable="@color/blue" />
<item android:state_activated="true" android:drawable="@color/blue_selected" />
<item android:state_selected="true" android:drawable="@color/blue_selected" />
<item android:drawable="@android:color/transparent" />
</selector>
これはListView
アイテムのレイアウトです:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@color/listing_selector"
>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
/>
</RelativeLayout>
これは青色のリソースです。
<resources>
<color name="blue">#ff33b5e5</color>
</resources>
更新 1:
セレクターをcolor
フォルダーからフォルダーに移動しdrawable
、コードをこれに更新しようとしました:
android:background="@drawable/listing_selector"
更新 2:
また、 でListView
、これを追加しようとしました:
<ListView android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:listSelector="@drawable/listing_selector"
/>
更新 3:
私のコードに何かあるのではないかと思いましたが、 からすべてのコードを削除しましたがonListItemClick
、ListView
まだ機能してselector
いません。
更新 4:
機能しているように見える、機能していない、state_selected
に絞り込みましたstate_activated
state_pressed
更新 5:
私は間違っていたと思います。セレクターがまったく認識されていないと思います。ListView
組み込みの強調表示をセレクタと混同していました。私のプロジェクトのセットアップ方法と関係があるのか どうか疑問に思っています。ライブラリクラスにセレクターがあります。ICS から JB に変更された可能性がありますが、セレクターをアプリのプロジェクトに移動しても修正されなかったようです。
更新 6:
OK、さらに髪を引っ張った後、色の変更が機能するため、セレクターが認識されていることを意味するため、認識されるstate_selected
かどうかを再度絞り込みました 。コメントから、他の人がジェリービーンで動作するセレクターを取得できたので、特に私のアプリに何かがあるようです。state_activated
state_pressed
他に興味深いのはdrawable
、デフォルト状態の値を変更しても認識されないことです。私が持っている場所ではcolor/transparent
、それを色に変更するとリストがその色に変わると思いますが、そうではありません。
また、これは ICS でも機能しません。
更新 7:
さらに髪を引っ張った後、メニュー項目を長押しすると、その項目の色が変更されることがわかりました。アイテムをクリックするだけではまだ機能しません。それが何を意味するのかさえわかりません。
** 最終更新:**
あきらめて、セレクターを削除し、ListView
オンクリックを更新し、クリックされた位置を記憶してコードから強調表示しています。理想的ではありませんが、修正しようとする価値はありません。