android - 有什么方法可以根据 Android 中 RecyclerView 的项目文本长度为每一行设置不同的“spanCount”
问题描述
实际上我正在尝试为我当前的应用程序设计下面的页面。
如果您仔细观察上面的屏幕截图,您会发现Span-Count
每一行item text-length
中Item-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。当然它在代码中设置)也项目上的文字不完全可见。
解决方案
你需要使用 FlowLayoutManager
implementation 'com.xiaofeng.android:flowlayoutmanager:1.2.3.2'
并且对于RecyclerView
FlowLayoutManager flowLayoutManager = new FlowLayoutManager();
flowLayoutManager.setAutoMeasureEnabled(true);
recyclerView.setLayoutManager(flowLayoutManager);
推荐阅读
- mongodb - 使用主机公网 IP 连接到 MongoDB atlas
- java - 如何在迭代期间添加项目时修复 ConcurrentModificationException 错误
- c# - 为什么 await Task.Run() 不会返回同一个线程?
- python - 使用 Python 和 BeautifulSoup 进行抓取,循环出现问题(初学者)
- windows - WM_SIZE 处理程序中 PostQuitMessage 后没有 WM_QUIT
- spring-batch - Spring Cloud Data Flow 任务在执行之间保持参数
- javascript - nodejs对象中的字符串操作
- c - 从文件中扫描带有空格的字符串,同时在同一行中扫描其前后的数字
- python - 我的服务器文件安全吗?我不断收到引用未知域的奇怪错误
- c++ - c++程序在代码块IDE中不起作用