android:clickable =“true”意味着它不可点击?

时间:2011-10-25 19:36:34

标签: java android

我有一个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() ...

2 个答案:

答案 0 :(得分:18)

当您设置OnItemClickListener时,只有在onItemClicked的孩子没有设置ListView时才会调用事件OnClickListener。将clickable设置为true将为子视图(在本例中为TextView}提供空OnClickListener。由于设置了TextView OnClickListener,因此不会调用OnItemClickListener

答案 1 :(得分:1)

我认为当它是列表项视图的子项时,不应该写android:clickable="true"。如果您有listitem的选择器,只需在根标记上setbackground