我有自定义列表视图,其中添加了少量元素,例如ImageView
,TextView
和View
。这三个组件构成一行,我想完成整个clickable
。目前发生的事情是当我将android:background="@drawable/text_selection_file"
添加到ImageView
或TextView
时,它仅选择相应的元素背景,而不是整行。因为我有多行,所以我不能将每一行放入不同的GroupView
中,因此每个下一行android:layout_below="above_view"
的属性都不起作用。所以我需要找到一种方法来做这个槽,我可以选择整行。目前,它仅适用于TextView
或ImageView
的特定选择,但不能同时适用于两者。我的XML
代码低于
CODE
//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
答案 0 :(得分: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);
}
}