屏幕上只显示一个项目的RecyclerView

9
我有一个包含ImageView项的RecyclerView。 我想让RecyclerView一次只显示一个项目,像ViewPager一样拖到边缘时进行更改。 有人知道如何实现吗?
我正在使用来自此源代码的代码: Android简单的RecyclerView小部件示例 唯一的区别是我没有TextView,只有ImageView

如果您能添加您现有的代码,这将有助于提供适合您问题的良好答案。 - Shudy
好的,你可以将你的项视图大小设置为与屏幕大小相同。 - M090009
但问题是一次只能显示一个项目,一个图片。当我滑动时,它必须切换到下一个:/ - Damian Kozlak
没错,Hegazy :) 我尝试使用带有轴变换的ViewPager,但性能不好。 - Damian Kozlak
那我应该使用你提到的库 - castorflex/VerticalViewPager - 并将其放入标准的ViewPager中吗? - Damian Kozlak
显示剩余8条评论
2个回答

46

您可以使用PagerSnapHelper类:

RecyclerView recyclerFoodItemsHorizontal = (RecyclerView) findViewById(R.id.recycler_food_items_horizontal);
SnapHelper mSnapHelper = new PagerSnapHelper();
mSnapHelper.attachToRecyclerView(recyclerFoodItemsHorizontal);

它的工作方式类似于ViewPager。


@KshitijJain,我遇到了一个错误:“无法解析符号PagerSnapHelper”。请帮忙 :( - Rakesh
@Rakesh 请在gradle中包含recycler view库。 - Kshitij Jain
@KshitijJain,是的,我明白了。我必须将recycler view版本更新到25.2.0。之前我使用的是25.0.0。我希望这不会影响其他任何东西。 - Rakesh
太好了!我想重新编写页面适配器! - Vitaliy Ptitsin
真是一个很棒的解决方案! - Arjun
拯救了我的一天,非常感谢。 - jay patoliya

1
我看到你需要一个垂直的ViewPager。我在我的一个项目中使用了castorflex/VerticalViewPager库来实现这个功能。它的工作方式与ViewPager相同,没有代码更改,只需复制v19 ViewPager中可用的所有左/右内容并将其更改为顶部/底部以及X更改为Y即可。

1
VerticalViewPager在HorizontalViewPager内部工作正常。我使用了PagerAdapter替代FragmentPagerAdapter在VerticalViewPager中。Note 3上最大CPU使用率为5%。感谢你的帮助 :) - Damian Kozlak
谢谢您的反馈。我将它与FragmentStatePagerAdapter一起使用,效果也很好 ;) - Ahmed Hegazy
目前(2020年),Google已经推出了官方实现相同功能的ViewPager2,与ViewPager相比,ViewPager2能够进行垂直滚动(https://developer.android.com/training/animation/vp2-migration#vertical-support)。 - Michal Vician

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接