使用哪个控件来制作 Google 播放风格的水平滚动

Which control to use to make a Google Play style horizontal scroll

我正在尝试制作一个水平滚动列表,就像我们可以在 Google Play 应用程序中找到的那样。我制作了片段 (100dp x 150dp) 和适配器,但我正在努力寻找一个可以工作的元素。

片段看起来像这样:

它只是一个带有图像视图的卡片视图,以及其中的几个文本视图。

我的目标是让它们中的许多像这样水平放置并可滚动:

我尝试使用 ViewPager,但它只允许一个全屏元素,但我需要一个在页面之外继续的列表。另一方面,Horizo​​ntalScrollView 不会 "snap" 到上面 gif 中看到的元素。

有什么关于哪个元素最适合这个的建议吗?

如果我是你,我会使用 ViewPage 并实现一个 PagerAdapter。在自定义的PagerAdapter中,覆盖方法getPageWidth(),调整页面宽度为卡片的宽度。

我建议使用 RecyclerView "pattern" 并简单地使用 LinearLayoutManager 并将其 orientation 设置为 HORIZONTAL.

它将与 Horizo​​ntal RecyclerView 一起工作,使 Horizo​​ntal LinearLayoutManager 像下面的代码一样

RecyclerView rclViewOrder;
rclViewOrder.setHasFixedSize(true);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);

rclViewOrder.setLayoutManager(mLayoutManager);
RecyclerView.Adapter mAdapter = new ViewOrderWaiterAdapter(activity, orderItemInfoList);
rclViewOrder.setAdapter(mAdapter);