Android选择器问题

时间:2010-03-05 11:03:01

标签: android listview selector

我有一个带有自定义item_row.xml的列表视图。我已经用这种方式定义了一个选择器:

<?xml version="1.0" encoding="utf-8"?>

                   

<item
    android:state_pressed="false"
    android:drawable="@drawable/list_bg" >
</item>
<item 
    android:state_pressed="true"
    android:drawable="@drawable/header_bg" >
</item>
<item
    android:state_focused="false"
    android:drawable="@drawable/list_bg" >
</item>
<item
    android:state_focused="true"
    android:drawable="@drawable/header_bg">
</item>

然后以这种方式放入item_row.xml:

    <LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="70dip"
  android:orientation="vertical"
  android:background="@drawable/list_selector"> 

我想要两件事:

  • 当我使用箭头键移动时,所选项目会更改其背景。它适用于选择器的实际实现。
  • 当我按下某个项目时,该项目也改变了它的背景,但它不适用于实际的选择器。

有什么想法吗?我尝试也设置为ListView android:listSelector =“@ drawable / list_selector” 但它也不起作用。

由于

1 个答案:

答案 0 :(得分:1)

您应该在Android本身用于StateListDrawable选择器之后为ListView建模。您可以在$ANDROID_HOME/platforms/$VERSION/data/res/drawable/list_selector_background.xml中找到此信息,其中$ANDROID_HOME是Android SDK的安装位置,$VERSION是某个Android版本(例如android-2.1)。然后,通过布局XML中android:listSelector中的ListView应用列表选择器。