实际上,我正在尝试为我当前的应用程序设计下面的页面。
如果您仔细观察上面的屏幕截图,您会发现每行中的Span-Count
是不同的(有时是2/3/1),并且这些项似乎是根据各自的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);