如何仅显示从当前位置到水平 RecyclerView 的一项?
Posted
技术标签:
【中文标题】如何仅显示从当前位置到水平 RecyclerView 的一项?【英文标题】:How can I show only one item from current position to horizontal RecyclerView? 【发布时间】:2020-09-17 07:40:42 【问题描述】:我有具有 GridView 的水平 RecyclerView。当我滚动 RecyclerView 时,同时出现 2 个元素。我只想在当前位置显示项目。
活动:
recyclerView = findViewById(R.id.recyclerView);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, RecyclerView.HORIZONTAL, false);
recyclerView.setHasFixedSize(false);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(new MyRecyclerViewAdapter(this, getTotalCount()));
我的适配器:
public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.MyViewHolder>
private int count;
private Context context;
public MyRecyclerViewAdapter(Context context, int count)
this.context = context;
this.count = count;
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
return new MyViewHolder(ViewUtil.inflate(LayoutInflater.from(context), parent, R.layout.my_recyclerView));
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position)
MyGridViewAdapter myGridViewAdapter = new MyGridViewAdapter(position);
holder.gridView.setAdapter(myGridViewAdapter);
@Override
public int getItemCount()
return count;
static class MyViewHolder extends RecyclerView.ViewHolder
private GridView gridView;
MyViewHolder(View itemView)
super(itemView);
gridView = itemView.findViewById(R.id.grid);
【问题讨论】:
嗨 propoLis,请尝试将 recyclerView 列表项的高度设置为match_parent
并查看
【参考方案1】:
我认为你应该使用PagerSnapHelper
val snapHelper = PagerSnapHelper()
snapHelper.attachToRecyclerView(recyclerView)
【讨论】:
【参考方案2】:1-始终使用“wrap_content”作为行的高度,否则在“match_parent”中它将占据整个屏幕的单行。
2-也可以以dp取高度。
【讨论】:
请添加布局以上是关于如何仅显示从当前位置到水平 RecyclerView 的一项?的主要内容,如果未能解决你的问题,请参考以下文章