首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StaggeredGridLayout,每一行对象的动态#,行包装

StaggeredGridLayout,每一行对象的动态#,行包装
EN

Stack Overflow用户
提问于 2019-02-08 20:32:10
回答 1查看 371关注 0票数 1

我正在寻找一种方式,以显示一个列表的图像/图标的可变宽度在我的UI中,并启用行包装,这样可以有一个可变数量的对象每行。对象列表是动态的,来源于DB。我目前正在使用StaggeredGridLayout,但限制如下:

  1. 要求每一行的跨度(列)保持一致。我知道我可以以编程的方式设置它,但是我需要以某种方式度量每个对象,这是我并不真正想做的,因为还有其他的限制,比如下面的#2
  2. 即使使用变量spanCount (列的#),gridLayout也会扩展每一行以填充最大宽度,从而在每个对象之间创建一个难看的间距。

(下面的截图)

我错过了什么重要的东西吗?也许我应该使用一个完全不同的构造(比如一个表),但是如果我遗漏了一些明显的东西,请告诉我。

RecyclerView XML:

代码语言:javascript
复制
                    <android.support.v7.widget.RecyclerView
                    android:id="@+id/tagsRecyclerView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"                        
                    android:layout_marginTop="6dp"
                    android:layout_marginHorizontal="8dp"
                    android:rotationY="180"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="1.0"
                    app:layout_constraintStart_toEndOf="@+id/tagsTxt"
                    app:layout_constraintTop_toBottomOf="@+id/paragraphTxt" />

使用以下方法初始化布局:

代码语言:javascript
复制
tagRecyclerLayoutManager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);

Current look (StaggeredGridLayout;网格扩展以填充所有空间,一致的列# (spanCount)):

所需的外观(行包装、一致间距、动态列#):

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-08 22:16:09

你应该考虑一下FlexboxLayout。看看GitHub项目站点上的自述文件。我想你会发现它符合你的需要。还有一个用于FlexboxLayoutManagerRecyclerView。所有这些都得到了谷歌的支持。

您可以下载GitHub项目来播放它,看看是否可以使用它。谷歌游戏商店里也有一些游戏演示应用程序。去找就行了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54599780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档