0

抱歉,如果这太琐碎或以前已发布过。现在,我正在处理这个问题。我有一个 ListView 组件,我在其中创建一组项目,每个项目都是膨胀的布局。当我点击一个项目时,onClick的行为是完整的,听众正在做他们的工作,但 ListView 没有在按钮中显示“按下状态”。下图显示了我正在寻找的内容:

在此处输入图像描述

有没有人有提示给我?我已经检查并尝试了几件事: 1. android:state_focused="true" 2. android:state_pressed="true" 3. setClickable(true)

提前致谢!

4

1 回答 1

1

您必须手动将样式应用于列表项的状态。因为,您正在创建自己的列表项视图而不是 android 列表项视图。因此,您必须提供特定的样式来显示不同的状态。使用选择器为列表项设置样式。我在这里提供了一些示例代码,

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="false"
        android:drawable="@drawable/list_item_gradient" />

    <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
    <item android:state_focused="true" android:state_enabled="false"
        android:state_pressed="true"
        android:drawable="@drawable/list_selector_background_disabled" />
    <item android:state_focused="true" android:state_enabled="false"
        android:drawable="@drawable/list_selector_background_disabled" />

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

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

</selector>

在列表视图中

<ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:listSelector="@drawable/list_selector_background" />

于 2012-06-18T17:31:12.920 回答