4

在我的 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 中删除按钮时,它起作用了。任何人都可以帮助我。提前致谢。

4

3 回答 3

8

LinearLayout在你的and中使用这个属性RelativeLayout

android:descendantFocusability="blocksDescendants"
于 2013-02-28T15:15:02.373 回答
0

我认为问题的原因是图像按钮的布局权重。因此,请尝试为线性布局中的所有视图赋予权重,并将 weightSum 属性赋予线性布局本身。

我觉得 clickListener 不起作用的原因是 ImageButton 将自身包裹在整个行的宽度上,并且该项目不再具有侦听器代码可以执行的空间。

于 2013-02-28T15:13:29.287 回答
0

如此处所述,您不能同时拥有a 的子视图onItemClick和子视图。启用焦点和单击,这将导致不触发。onClickListViewButtononItemClick

于 2013-02-28T15:13:15.667 回答