在我的ListView中,我的列表项具有如下视图
这是我的row.xml布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/Peru"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:background="@drawable/et_back_yellow"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/ib_edit"
android:layout_width="35dp"
android:layout_height="30dp"
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_weight="1"
android:background="@drawable/ib_selector"
android:contentDescription="@string/edit"
android:src="@drawable/edit" />
<TextView
android:id="@+id/tv_date"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="100"
android:gravity="center_vertical|center_horizontal" />
<TextView
android:id="@+id/tv_time"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="100"
android:gravity="center_vertical|center_horizontal" />
<ImageButton
android:id="@+id/ib_delete"
android:layout_width="35dp"
android:layout_height="30dp"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:layout_weight="1"
android:background="@drawable/ib_selector"
android:contentDescription="@string/edit"
android:src="@drawable/delete" />
</LinearLayout>
<EditText
android:id="@+id/et_note"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/title"
android:layout_alignRight="@+id/title"
android:layout_below="@+id/title"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textMultiLine"
android:background="@color/yellow">
<requestFocus />
</EditText>
</RelativeLayout>
当我点击列表项时,onListItemClick方法不起作用。但是当我从row.xml中删除按钮时,它可以工作。任何人都可以帮助我。谢谢。
答案 0 :(得分:8)
在LinearLayout
和RelativeLayout
:
android:descendantFocusability="blocksDescendants"
答案 1 :(得分:0)
如onItemClick
所述onClick
的子视图,您不能同时拥有ListView
和Button
。here。 onItemClick
已启用焦点并点击,这将导致{{1}}无法触发。
答案 2 :(得分:0)
我认为问题的原因是给予imageButtons的布局权重。因此,尝试为线性布局中的所有视图赋予权重,并将weightSum属性赋予linearLayout本身。
clickListener不工作的原因我觉得ImageButton在行的整个宽度上都是自己封装的,而且该项不再具有侦听器代码可以执行的空间。