我有RecyclerView
用户可以选择行。我已将onClickListener
添加到itemView
以更改所选行的背景。
private void bindSelect(final Comment comment){
itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if(comment.isScelected()){
itemView.setBackgroundColor(0);
comment.setScelected(false);
}else{
itemView.setBackgroundColor(mContext.getResources().getColor(R.color.comment_select_background));
comment.setScelected(true);
}
}
});
}
Everthing工作,直到我们决定在行中的文本视图中启用autolink
。
之后当用户点击包含link
的textview时,itemView.onClickListner没有抓住点击!!
XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:wisgoon="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true" >
<ImageView
android:id="@+id/comment_avatar"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
android:layout_marginBottom="@dimen/eight"
android:layout_marginEnd="@dimen/regular_margin"
android:layout_marginLeft="@dimen/eight"
android:layout_marginRight="@dimen/regular_margin"
android:layout_marginStart="@dimen/eight"
android:layout_marginTop="@dimen/eight" />
<TextView
android:id="@+id/comment_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/eight"
android:layout_toLeftOf="@+id/comment_avatar"
android:layout_toStartOf="@+id/comment_avatar"
android:gravity="right"
android:lines="1"
android:textColor="@color/textColorDark"
android:textSize="13sp" />
<TextView
android:id="@+id/comment_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/four"
android:layout_marginRight="@dimen/four"
android:layout_marginTop="@dimen/eight"
android:layout_toLeftOf="@+id/comment_name"
android:layout_toStartOf="@+id/comment_name"
android:gravity="right"
android:lines="1"
android:textColor="@color/textColorLight"
android:textSize="11sp" />
<TextView
android:id="@+id/comment_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/comment_name"
android:layout_marginBottom="@dimen/four"
android:layout_marginLeft="@dimen/eight"
android:layout_marginStart="@dimen/eight"
android:layout_marginTop="@dimen/minus_four"
android:layout_toLeftOf="@+id/comment_avatar"
android:layout_toStartOf="@+id/comment_avatar"
android:autoLink="all"
android:gravity="right"
android:textColor="@color/textColorDarkGray"
android:textSize="11sp" />
如何解决这个问题?
更新 Dudes我连续多个可点击区域
答案 0 :(得分:0)
您必须使用链接启用向OnTouchListener
添加TextView
并返回false
布尔值以显示尚未处理的触摸
很像这样
findViewById("R.id.comment_text").setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP){
// Do what you want with text link
}
return false;
}
});
答案 1 :(得分:0)
在您的xml
文件中,您已为所有人设置了自动链接。根据您的评论,您希望显示链接,但需要禁用click事件。所以在xml
文件中添加以下行。
android:linksClickable:"false"