创建具有不同列号的网格视图

时间:2016-12-07 09:56:40

标签: android android-layout gridview

我想创建一个类似于Medium应用程序的网格视图,它具有不同的列号,具体取决于文本的长度。

使用与GridLayoutManager配对的标准RecyclerView似乎没有多大帮助。

是否有更好的方法来达到同样的效果;尽可能使用RecyclerView

Medium category selection

3 个答案:

答案 0 :(得分:0)

实际上是可能的。诀窍在于,RecyclerView行以水平为中心,动态添加按钮。您不必关心每个按钮的位置因为它们的宽度设置为wrap_content,并且行是水平居中的,所以它将自动呈现此结果。你要做的是,你必须决定是连续放2,3或4个项目。您可以定义字符限制,也可以考虑按钮的填充,然后您可以创建数据源以发送到RecyclerView。这是我可以在不看代码的情况下给你的一般概念。

答案 1 :(得分:0)

答案 2 :(得分:0)

这是我的项目对我有用的解决方案,我认为它也适合你。如果有帮助,请告诉我

布局xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:id="@+id/row1"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


<android.support.v7.widget.RecyclerView
    android:id="@+id/articles"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="horizontal"
    android:scrollbarStyle="outsideInset"
    android:layout_weight="1"
    android:layout_gravity="center"/>

<android.support.v7.widget.RecyclerView
    android:id="@+id/articles2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="horizontal"
    android:scrollbarStyle="outsideInset"
    android:layout_weight="1"
    android:layout_gravity="center"/>

<android.support.v7.widget.RecyclerView
    android:id="@+id/articles3"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="horizontal"
    android:scrollbarStyle="outsideInset"
    android:layout_weight="1"/>
</LinearLayout>
</RelativeLayout>