android - 具有上一页和下一页边界的 RecyclerView?
问题描述
使用 ViewPagers,可以通过“setPageMargin”轻松实现稍微显示上一页和下一页。例如,
vp.setPageMargin(-200)
可能会导致如下 UI:
但是如何使用 RecyclerViews 来实现呢?这些项目必须均匀分布,并且当前项目应该居中。
为了设置我的 RecyclerView 来模仿 ViewPager,我利用了 PagerSnapHelper()
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
SnapHelper snapHelper = new PagerSnapHelper();
RecyclerView rvHorizontal = findViewById(R.id.rv_horiz);
rvHorizontal.setLayoutManager(linearLayoutManager);
snapHelper.attachToRecyclerView(rvHorizontal);
// set adapter
mAdapter = new HorizontalAdapter(context, mData);
rvHorizontal.setAdapter(mAdapter);
PagerSnapHelper() 允许我滚动并有一个页面捕捉到位,但是,我如何让页面显示?提前致谢。
解决方案
但是如何使用 RecyclerViews 来实现呢?这些项目必须均匀分布,并且当前项目应该居中。
您可以只设置项目视图的宽度ViewHolder
来实现此效果RecyclerView
。
你应该使用LinearSnapHelper
而不是PagerSnapHelper
.
推荐阅读
- php - 我正在使用 docker 建立一个 apache 和 php 服务器,我可以进入并查看它,但我网络中的其他人无法访问
- javascript - 如何通过使用 javascript 在外部单击来隐藏下拉菜单
- javascript - vue-socket.io Uncaught TypeError:无法读取未定义的属性
- jmeter - org.apache.http.conn.HttpHostConnectException 与 jMeter
- css - 在 flex-direction 中控制 flex 子项的高度:行场景
- java - 货号格式异常
- angular - 我可以使用 SVG
- python - 如何在python中捕获文本并同时替换它?
- mfc - ARGB 未在默认 MFC 项目中定义
- c# - 如何使用 Linq 加入 2 个 Key 匹配和 SUM 的字符串列表