我需要在我的Android应用程序中实现一个水平列表视图。我做了一些研究,遇到了如何在Android中创建一个水平的ListView ?和横向列表视图在Android?然而,这些问题是在Recyclerview发布之前提出的。有没有更好的方法来实现这个现在与Recyclerview?


当前回答

您可以在代码或布局xml文件中更改方向。

在xml文件中

在你的布局xml文件中,将orientation设置为水平,layoutManager设置为LinearLayoutManager, GridLayoutManager, StaggeredGridLayoutManager之一。根据您的要求选择。

<androidx.recyclerview.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />

在代码中

如果希望以编程方式更改方向,请将layoutManager设置为水平方向。

recyclerView.layoutManager = LinearLayoutManager(context, RecyclerView.HORIZONTAL, false)

其他回答

只需在XML的RecyclerView中添加这些属性

android:orientation=“horizontal” app:layoutManager=“androidx.recyclerview.widget.LinearLayoutManager”

如果你想使用RecyclerView和GridLayoutManager,这是实现水平滚动的方法。

recyclerView.setLayoutManager(
new GridLayoutManager(recyclerView.getContext(), rows, GridLayoutManager.HORIZONTAL, false));

随着RecyclerView库的发布,现在您可以轻松地对齐与文本绑定的图像列表。您可以使用LinearLayoutManager来指定您想要定位列表的方向,可以是垂直的,也可以是水平的,如下所示。

你可以从这篇文章中下载一个完整的工作演示。

recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));

recyclerView.setAdapter(adapter);

有没有更好的方法来实现这个现在与RecyclerView现在?

Yes.

当您使用RecyclerView时,您需要指定一个LayoutManager,该LayoutManager负责布局视图中的每个项。LinearLayoutManager允许你指定一个方向,就像一个正常的LinearLayout一样。

要用RecyclerView创建一个水平列表,你可以这样做:

LinearLayoutManager layoutManager
    = new LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false);

RecyclerView myList = (RecyclerView) findViewById(R.id.my_recycler_view);
myList.setLayoutManager(layoutManager);