Android 可点击的recyclerview区域在滚动之前不是100%宽度
我正在为一个android应用程序开发一个屏幕,我需要在每一行recyclerview中添加一个点击事件,它可以部分工作 问题是一旦加载了意图,可点击区域就被限制在内容的宽度范围内 只有在发生滚动后,recyclerview行从视口中完全隐藏时,可单击区域才能正常工作(100%宽度) 贝娄有一张gif图,可以说明我的问题。请注意,在滚动之前,可单击区域缩小为行内容,滚动之后,可单击区域填充行内容Android 可点击的recyclerview区域在滚动之前不是100%宽度,android,android-recyclerview,Android,Android Recyclerview,我正在为一个android应用程序开发一个屏幕,我需要在每一行recyclerview中添加一个点击事件,它可以部分工作 问题是一旦加载了意图,可点击区域就被限制在内容的宽度范围内 只有在发生滚动后,recyclerview行从视口中完全隐藏时,可单击区域才能正常工作(100%宽度) 贝娄有一张gif图,可以说明我的问题。请注意,在滚动之前,可单击区域缩小为行内容,滚动之后,可单击区域填充行内容 只需更改ViewHolderCatalog类,如下所示 public static class V
只需更改ViewHolderCatalog类,如下所示
public static class ViewHolderCatalog extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView txtItemName;
public TextView txtItemPrice;
public ViewHolderCatalog(View itemView) {
super(itemView);
txtItemName = (TextView) itemView.findViewById(R.id.txt_catalog_item_name);
txtItemPrice = (TextView) itemView.findViewById(R.id.txt_catalog_item_price);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), “You clicked your your recycler view item”, Toast.LENGTH_SHORT).show();
}
}
该问题与content_catalog.xml文件中的ConstraintLayout有关
类似的问题正在发生,因此要解决它,请尝试简单地用其他东西(如LinearLayout或RelativeLayout)替换它,这样就可以解决视图在滚动重新呈现之前不会扩展的问题 出于好奇,在catalog_item.xml中,如果向根线性布局添加一个id,然后将onClickListener设置为该布局而不是itemview,您是否面临同样的问题?(别忘了将clickable='false'添加到2个文本视图中,这样点击将传递到基本布局)@Silmarilos更改后问题/错误仍然存在。。无论如何,感谢您的评论。另一个想法是,在content_catalog.xml文件中,用RelativeLayout或LinearLayout替换基本ConstraintLayout,然后尝试该设置。我很好奇这个问题是否与app:layout\u behavior标签有关。@Silmarilos在将ConstraintLayout替换为LinearLayout后,一切正常!请将此评论作为答案。您忘记设置itemView了。ViewHolder构造函数中的setOnClickListener(this)