我想创建一个类似于Medium应用程序的网格视图,它具有不同的列号,具体取决于文本的长度。
使用与GridLayoutManager
配对的标准RecyclerView
似乎没有多大帮助。
是否有更好的方法来达到同样的效果;尽可能使用RecyclerView
。
答案 0 :(得分:0)
实际上是可能的。诀窍在于,RecyclerView
行以水平为中心,动态添加按钮。您不必关心每个按钮的位置因为它们的宽度设置为wrap_content
,并且行是水平居中的,所以它将自动呈现此结果。你要做的是,你必须决定是连续放2,3或4个项目。您可以定义字符限制,也可以考虑按钮的填充,然后您可以创建数据源以发送到RecyclerView
。这是我可以在不看代码的情况下给你的一般概念。
答案 1 :(得分:0)
试试这些网址。它可能会帮助你
GridView with last item centered
https://github.com/thetonrifles/android-recycler-grid/tree/onlygrid
答案 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>