我有一个ListView,里面有一些自定义部分。每个部分都有自己的标题视图。我希望列表中的元素是可点击的,但显然不希望节标题是可点击的。因此,在部分标题的xml中,我添加了android:clickable="false"
。
调试时我发现部分标题仍在响应我的setOnItemClickListener()
。然后我尝试在XML中设置android:clickable="true"
。果然,节标题视图不再响应点击次数......
那么这里的交易是什么?为什么设置clickable
= true
告诉它不可点击?我在这里误解了什么吗?这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:background="@android:color/transparent"
android:textAppearance="?android:attr/textAppearanceLarge"
android:paddingLeft="30dp"
android:clickable="true" />
如果我在底部设置clickable="false"
,则此视图开始响应setOnItemClickListener()
...
答案 0 :(得分:18)
当您设置OnItemClickListener
时,只有在onItemClicked
的孩子没有设置ListView
时才会调用事件OnClickListener
。将clickable设置为true将为子视图(在本例中为TextView
}提供空OnClickListener
。由于设置了TextView
OnClickListener
,因此不会调用OnItemClickListener
。
答案 1 :(得分:1)
我认为当它是列表项视图的子项时,不应该写android:clickable="true"
。如果您有listitem
的选择器,只需在根标记上setbackground
。