0

タップ時に背景のグラデーションを何かに変更し、指を離すと元のグラデーションを取得するにはどうすればよいですか...リストビューアダプターを使用して作成したリストはグラデーションに変わりますが、指を離しても元のグラデーションに戻りません..以下のxml

main.xml

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:divider="#EDEDED"
    android:dividerHeight="1dp"
    android:listSelector="@drawable/list_selector"
  />

list_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selector style for listrow -->

<item android:state_focused="true"
    android:drawable="@drawable/gradient_bg_hover"
    />

<item
 android:state_selected="false"
    android:state_pressed="false"
    android:drawable="@drawable/gradient_bg" />

    <item android:state_pressed="true"
    android:drawable="@drawable/gradient_bg_hover" />

   <item android:state_selected="true"
    android:state_pressed="false"
    android:drawable="@drawable/gradient_bg_hover" />

</selector>

行リスト.xml

 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/txtListText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:padding="15dp"
    android:textSize="45sp"


    />

gradient_bg と gradient_bghover はグラデーション xml です。

4

1 に答える 1

0

state_selected と state_pressed を同時に定義することはできないと思います...

動作するものは次のようになります。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@drawable/_bt_week_selected" />
    <item android:state_focused="true" android:drawable="@drawable/_bt_week_selected"/>
    <item android:state_pressed="true" android:drawable="@drawable/_bt_week_selected"/>
    <item android:drawable="@drawable/_bt_week_normal"/>
</selector>

リスト項目(row_list)の背景をセレクターに設定します...のようにandroid:background="@drawable/selector"...使用する代わりにandroid:listSelector="@drawable/list_selector" 、あなたのものも機能しているかどうかわかりません...

于 2013-01-17T13:58:41.617 に答える