首页 > 解决方案 > 有什么方法可以根据 Android 中 RecyclerView 的项目文本长度为每一行设置不同的“spanCount”

问题描述

实际上我正在尝试为我当前的应用程序设计下面的页面。

预期屏幕

如果您仔细观察上面的屏幕截图,您会发现Span-Count每一行item text-lengthItem-Width的 所以,考虑到这些点,我正在尝试设计这个页面。目前我正在RecyclerView使用StaggeredGridLayoutManager

下面是我的代码:

rvCategory = (RecyclerView) findViewById(R.id.rvCategory);
RecyclerView.LayoutManager mLayoutManager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
rvCategory.addItemDecoration(new SpacesItemDecoration(9, 15));
rvCategory.setLayoutManager(mLayoutManager);

使用上面的代码,我的屏幕如下所示——

在此处输入图像描述

您可以清楚地注意到第一个屏幕截图(预期)和第二个屏幕截图(正在查看)之间的区别,第二个屏幕截图显示固定的跨度计数(即 3。当然它在代码中设置)也项目上的文字不完全可见。

标签: android

解决方案


你需要使用 FlowLayoutManager

implementation 'com.xiaofeng.android:flowlayoutmanager:1.2.3.2'

并且对于RecyclerView

FlowLayoutManager flowLayoutManager = new FlowLayoutManager();
flowLayoutManager.setAutoMeasureEnabled(true);
recyclerView.setLayoutManager(flowLayoutManager);

推荐阅读