描述:,我正在做一个演示,它的功能是用户可以从水平Recyclerview项中选择一个选项。在这个过程中,我陷入了下面的查询。
查询:
1:如何使Recyclerview循环?
例如,我有10个项目,名为1,2,3,4,5,6,7,8,9,10。现在,如果用户滚动回收视图,他/她将能够无休止地滚动它。例如,1,2,3,4,5.9,10,1,2.9,10,2,3.9,10.为了实现这一点,我使用了这个答案。不知何故,它起了作用,但只在前进的方向。
2:如何为用户选择的特定项目提供快照中心?
例如:,如图像中所示,如果用户单击'15‘,则该项目将到达中心。就像用户点击'07‘,那么它应该到达中心位置。我已经实现了这个演示。但是它不适用于点击这个项目。
到目前为止,我所做的守则如下:
布局经理:
final CenterZoomLayoutManager mLayoutManager = new CenterZoomLayoutManager(mContext,
CenterZoomLayoutManager.HORIZONTAL, false);// To get centered item zoom
recyclerview.setLayoutManager(mLayoutManager);适配器对象:
mAdapter = new CustomAdapter(mContext, arrayList, new RecyclerViewClickListener() {
@Override
public void recyclerViewListClicked(View v, int position) {
}
});
recyclerview.setAdapter(mAdapter);任何帮助都是非常感谢的!谢谢。

发布于 2018-02-07 04:53:33
发布于 2018-02-07 09:52:26
没有办法使它无限,但有办法使它看起来是无限的。 在适配器中,重写getCount()以返回类似于Integer.MAX_VALUE的内容:
@Override
public int getCount() {
return Integer.MAX_VALUE;
}在getItem()和getView()中,模块将(%)位置除以实数:
@Override
public Fragment getItem(int position) {
int positionInList = position % fragmentList.size();
return fragmentList.get(positionInList);
}最后,将当前项目设置为中间的某一项(否则,它只会在向下的方向没完没了)。
// scroll to middle item
recyclerView.getLayoutManager().scrollToPosition(Integer.MAX_VALUE / 2);用于抓取使用SnapHelper或scrollToPositionWithOffset,其中偏移量为(宽度/2- itemWidth/2)
发布于 2021-12-18 05:34:03
我可以使用这个库,您可以通过个性化这个库来解决问题。通过选择每个项,您可以使用ScrollToX函数导航到该项。
https://github.com/mahdimoaz/RecyclerViewHorizontalCenterSelected
https://stackoverflow.com/questions/48649059
复制相似问题