【发布时间】:2016-12-14 16:21:27
【问题描述】:
我在HorizontalScrollView 中有一个RecyclerView,我希望它使用GridLayoutManager。这没关系,但有一件事仍然困扰着我,每列的宽度都是相同的(基于我想的最大单元格宽度?)。是否可以将列的宽度换行以匹配该特定列的最大单元格?
它应该看起来像这样:
橙色部分是单元格视图所占据的部分。
编辑
我们要求我澄清我的期望。举个例子胜过千言万语,这里你可以看到一个带有 GridLayoutManager 的 RecyclerView 的截图。每个项目都是一个简单的 TextView,其中随机包含 10 到 40 个字符之间的文本。如前所述,RecyclerView 位于 HorizontalScrollView 内。我们可以看到每一列都有相同的宽度,尽管这一列中的任何项目都不能满足整个宽度。我想要的是删除那些无用的空白空间并拥有不同大小的列,每列与其最大的孩子的宽度相匹配。
如果你想测试这种行为,你可以克隆我在 Github 上上传的这个 repo:https://github.com/ShargotthDev/TestGrid
按照要求,这是我的 XML 布局(非常基本):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<HorizontalScrollView
android:id="@+id/gameplay_hotizontalScroll_ScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="70dp">
<android.support.v7.widget.RecyclerView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/recycler_view" />
</HorizontalScrollView>
</RelativeLayout>
编辑 2
我应该提到一些单元格的跨度大小可能 > 1 并且 LayoutManager 应该是垂直的,以便这些单元格水平而不是垂直占据更多位置(不知道我是否让自己可以理解)。
感谢您的宝贵时间!
【问题讨论】:
-
还是不明白你到底想要什么??
-
你能发布你的xml布局吗?你用过
columnSpan和columnWeight吗? -
-
@HugoGresse 我发布了我的 XML 布局,但不,我不使用 columnSpan 或 columnWeight,但这不是必需的,因为我希望每列都有不同的宽度。还是我错了?
-
对我来说你应该有一个预定义的网格。正如我们为 web 所做的那样,一个页面被分成 12 个“单元”或网格。然后你在这个网格上对齐你的元素。所以你可以削减你的布局并使用 columnWeight。让我知道它是否解决了问题。你在文档中找到什么了吗?
标签: android android-recyclerview gridlayoutmanager android-wrap-content