到目前为止,我可以在两列中显示项目,但是如何将特定位置的两列合并为一列(即第 7 项)?
我已经尝试过 SO 提供的许多解决方案以及其他解决方案,但没有一个对我有用。那里提供的解决方案要么使用 LinearLayout 膨胀静态布局,要么提供列中分区的解决方案。
我也尝试过使用setSpanLookup方法但没有运气..
我想显示一个字符串列表,该列表必须可垂直滚动,并且对于每行都有可变数量的列,该列将取决于字符串。所以它将是一个可垂直滚动的网格。所以从图形上讲我想实现这一点:

我得到的结果是一个可水平滚动的列表,有 3 行和许多列,而我想要的是相反的方式:不可水平滚动(许多列,取决于团队名称),但可垂直滚动。
为了实现这一点,我在回收器视图中添加了一个 StaggeredGridLayoutManager ,其中包含 3 个跨度计数(这可能是错误的)和 StaggeredGridLayoutManager.GAP_HANDLING_NONE ,以拥有尽可能多的列。
第一个问题是是否可以使用 StaggeredGridLayoutManager 来实现这一点?如果是,我该如何解决我的问题?欢迎任何建议或想法。
请注意,xml 中的项目具有最大宽度,然后会省略
我所拥有的是以下内容:item_team.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="title"
type="String" />
</data>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_small"
android:background="@drawable/club_background"
android:padding="@dimen/margin_general">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:ellipsize="end"
android:maxWidth="184dp"
android:gravity="center"
android:lines="1"
android:text="@{title}"
tools:text="Arsenal" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
团队适配器.java:
public class TeamAdapter extends ListAdapter<TeamItem, RecyclerView.ViewHolder> {
private LayoutInflater inflater;
private List<TeamItem> items = new ArrayList<>();
private static final DiffUtil.ItemCallback<TeamItem> ITEM_CALLBACK = new DiffUtil.ItemCallback<TeamItem>() {
@Override
public boolean areItemsTheSame(@NonNull TeamItem item1, …Run Code Online (Sandbox Code Playgroud)