我獲得一個自定義的 ListView,然後使用不同的項目布局填充。問題是 OnItemClickListener 處理 ListView 只能捕捉 imageView 的點擊事件,但是在其余的2個 textViews 上都不行。如何修改呢?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/Fourdp"
android:layout_marginLeft="@dimen/Fourdp"
android:layout_marginRight="@dimen/Fourdp"
android:layout_marginTop="@dimen/Fourdp"
android:gravity="left|center"
android:paddingBottom="5px"
android:paddingLeft="5px"
android:paddingTop="5px"
android:descendantFocusability="blocksDescendants">
<ImageView
android:id="@+id/color"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/Fourdp"
android:layout_marginLeft="@dimen/Fourdp"
android:layout_marginRight="@dimen/Fourdp"
android:layout_marginTop="@dimen/Fourdp"/>
<LinearLayout
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_gravity="left"
android:layout_weight="1"
android:longClickable="true"
android:orientation="vertical" >
<TextView
android:id="@+id/task"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
android:textSize="20sp" />
<TextView
android:id="@+id/date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#336699" />
</LinearLayout>
</LinearLayout>
我想在 ImageView 上設置 android:focusable="false" 和 android:clickable="false" ,但還是不能運行。
如果你只是想點擊item就反應而不是針對每一個,你可以在item的根layout中加入:
android:descendantFocusability=”blocksDescendant”
如果你是想每個點擊不同處理,直接用holder去找每個,然後設置onClick事件