Android 是否可以限制RecyclerView的FlexboxLayoutManager中的特定行? 背景
我需要创建一个详细信息屏幕的UI,它以列表的方式包含各种字段。这就是我选择使用RecyclerView的原因,因为可能有很多字段,我不希望所有视图从一开始就膨胀 问题 在其中一行中,我实际上必须放置标签。该行与大多数其他行一样有标题,并且可能与大多数行一样在右侧有图标,但真正的内容是标记本身。如果没有更多的空间,它们将被包裹 诸如此类: 您看到的是一行,其中有标题、侧面的图标和标记。“标记”集合的侧面有一个边距,需要时可以换行到下一行,并占用图标下方的空间 我发现了什么 Google有一个很好的库(类似于各种流布局库),它允许在没有更多空间的情况下进行视图换行。它还允许对RecyclerView使用Android 是否可以限制RecyclerView的FlexboxLayoutManager中的特定行? 背景,android,android-recyclerview,flowlayout,android-flexboxlayout,Android,Android Recyclerview,Flowlayout,Android Flexboxlayout,我需要创建一个详细信息屏幕的UI,它以列表的方式包含各种字段。这就是我选择使用RecyclerView的原因,因为可能有很多字段,我不希望所有视图从一开始就膨胀 问题 在其中一行中,我实际上必须放置标签。该行与大多数其他行一样有标题,并且可能与大多数行一样在右侧有图标,但真正的内容是标记本身。如果没有更多的空间,它们将被包裹 诸如此类: 您看到的是一行,其中有标题、侧面的图标和标记。“标记”集合的侧面有一个边距,需要时可以换行到下一行,并占用图标下方的空间 我发现了什么 Google有一个很好
FlexboxLayoutManager
,以便尽可能回收视图。它可以很容易地初始化。例如:
val layoutManager = FlexboxLayoutManager(activity)
layoutManager.flexDirection = FlexDirection.ROW
layoutManager.flexWrap = FlexWrap.WRAP
layoutManager.justifyContent = JustifyContent.FLEX_START
layoutManager.alignItems = AlignItems.FLEX_START
recyclerView.layoutManager=layoutManager
这将使视图一个接一个地水平移动,并在需要时换行到下一行
现在有两种方法可以使用,但都有问题:
FlexboxLayoutManager
,其中所有行都采用整个宽度(match\u parent
),但此部分除外,其中标记采用wrap\u content
。这是可行的,但我找不到如何单独设置两侧标签的边距(右侧和左侧,但中间的标签除外)将每行中的标签包装在各自的
FlexboxLayout
中,并将FlexboxLayout
和其他视图包装在ConstraintLayout
或LinearLayout
中。这样,您就可以独立地控制FlexboxLayout
外部的视图和布局内部的视图,只需使用类似于RecyclerView
的线性布局管理器。不过,这比那更复杂吗?@Cheticamp我不明白你的意思。你能不能用视觉的方式,或者用代码的方式来显示它?就像这个布局检查器的照片所示@切蒂坎普,我不明白你做了什么。截图没有显示我写的东西。它并没有把“美国可卡西班牙”的文字放在图片下方。只在它的左边。我也不明白这是如何解决视图回收的,所以你想做一些类似的事情?