0

我有一个自定义列表视图,其中添加了一些元素,ImageView例如TextViewView。这三个组件组成一行,我想把它做成一个整体clickable。当前发生的情况是当我放入orandroid:background="@drawable/text_selection_file"时,它只选择相应的元素背景,而不是整行。由于我有不止一行,所以我不能以这种方式将每一行放入不同的行中,每个下一行的属性都不起作用。所以我需要找到一种方法来做这个低谷,我可以选择整行。目前,它适用于特定选择或仅适用于但不能同时适用于两者。我的代码如下ImageViewTextViewGroupViewandroid:layout_below="above_view"TextViewImageViewXML

代码

         //Above code for layout
         <ImageView
            android:id="@+id/homeLink"
            android:layout_width="25dp"
            android:layout_height="25dp"
            android:layout_below="@+id/menu_view"
            android:layout_margin="8dp"
            android:contentDescription="@string/app_name"
            android:gravity="center_vertical"
            android:src="@drawable/home" />

        <TextView
            android:id="@+id/home_link"
            android:layout_width="fill_parent"
            android:layout_height="45dp"
            android:layout_below="@+id/menu_view"
            android:layout_marginLeft="45dp"
            android:gravity="center_vertical"
            android:text="Home"
            android:textColor="@color/WHITE"
            android:textSize="18sp"
            android:textStyle="bold" />

        <View
            android:id="@+id/home_view"
            android:layout_width="fill_parent"
            android:layout_height="0.5dp"
            android:layout_below="@+id/home_link"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:background="@color/VIEW_COLOR" />
         //More rows down there
4

1 回答 1

0

您可以为 ListView 中的行设置 onClickListener:

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
            //insert code
        }

    });

您还可以将行布局包装到复合视图中(例如这里http://www.vogella.com/articles/AndroidCustomViews/article.html)并覆盖 setOnClickListener 以与视图的部分进行交互,例如此视图(带有自定义标题的 ImageButton 允许将图像动态上传到 ImageButton 并更改标题的字体)

public class CaptionImageButton extends LinearLayout {
private ImageButton ibBackground;
private TextView tvCaption;


@Override
public void setOnClickListener(final View.OnClickListener onClickListener) {
    ibBackground.setOnClickListener(onClickListener);
}

}

于 2013-11-01T09:05:24.497 回答