很抱歉,如果这太简单了,或者之前已发布过。现在,我遇到了这个问题。我有一个ListView组件,我正在创建一组项目,每个项目都是膨胀的布局。当我单击一个项目时, onClick 的行为完全正常,并且侦听器正在执行其工作,但ListView不会在按钮中显示“按下状态”。下图显示了我正在寻找的内容:
有人有提示要给我吗?我已经检查并尝试了几件事: 1. android:state_focused =“true” 2. android:state_pressed =“true” 3. setClickable(true)
提前致谢!
答案 0 :(得分: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中
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:listSelector="@drawable/list_selector_background" />