如何将gridlayoutManager每列的宽度设置为wrapContent在android中不固定大小

Posted

技术标签:

【中文标题】如何将gridlayoutManager每列的宽度设置为wrapContent在android中不固定大小【英文标题】:how to set width of each column of gridlayoutManager to wrapContent not fixed size in android 【发布时间】:2020-12-30 22:22:58 【问题描述】:

我使用GridLayoutManager 来自我的recyclerView。我想像这张图片一样显示我的列表,但我的输出不同。我想要一个GridLayoutManager,每行都有不同的宽度取决于它的宽度。

   binding.rcyHashtag.apply 
        layoutManager = GridLayoutManager(requireContext(), 3)
        adapter = simpleHashTagAdapter
    

<LinearLayout
android:id="@+id/lay_root"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical"
android:focusable="true"
android:clickable="true"
android:background="@drawable/drw_bg_hashtag"
android:paddingEnd="2dp"
android:paddingStart="2dp"
android:layout_margin="2dp">
<TextView
    android:id="@+id/txt_title"
    android:layout_
    android:layout_
    android:textColor="@color/white"
    android:layout_gravity="center"
    android:gravity="center"
    android:textSize="12sp"
  />

【问题讨论】:

【参考方案1】:

我找到了解决方案。我只是将StaggeredGridLayoutManager 用于recyclerView,如下所示:

 binding.rcyHashtag.apply 
        layoutManager = StaggeredGridLayoutManager( 3,StaggeredGridLayoutManager.HORIZONTAL)
        adapter = simpleHashTagAdapter
    

【讨论】:

以上是关于如何将gridlayoutManager每列的宽度设置为wrapContent在android中不固定大小的主要内容,如果未能解决你的问题,请参考以下文章

如何控制Listview每列的宽度自适应这列最长的内容

SQLPLUS 输出:如何自动获取每列的最小列宽?

如何控制 flexbox 中每列的项目数?

DataGridView - 如何设置列宽?

如何使用垂直 GridLayoutManager 水平居中 RecyclerView 项目

为漂亮表中的列设置列宽