RecycleView中的每一个Item都能点击跳转不同页面,然后每个item中的一部分要实现横向滚动,所以我加了HorizontalScrollView (只能有一个子View)。
但是点击scrollview内容时无法跳转页面了,这是由于子View获取到了焦点造成的。
解决方案:convert中,获取子view id并设置helper.getAdapterPosition() position监听
recycleView adapter:
public class RecycleViewAdapter extends BaseQuickAdapter<HomeRecycleBean.ListBean, BaseViewHolder> {
private OnItemClickListener mOnItemClickListener;
public RecycleViewAdapter(@LayoutRes int layoutResId, List<ListBean> data) {
super(layoutResId, data);
}
@Override
protected void convert(BaseViewHolder helper,ListBean item) {
helper.setText(R.id.tv_address, item.address());
helper.getView(R.id.tv_address).setOnClickListener((View v)->{mOnItemClickListener.onClick(helper.getAdapterPosition());});
}
@Override
public void onBindViewHolder(BaseViewHolder viewHolder, final int position) {
super.onBindViewHolder(viewHolder, position);
if (mOnItemClickListener != null) {
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnItemClickListener.onClick(position);
}
});
}
}
public interface OnItemClickListener {
void onClick(int position);
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.mOnItemClickListener = onItemClickListener;
}
}