1

问题有这个 UI 问题:

1) 我有 3 个textViews我想在一个父视图中保存。

2)我想在尽可能少的行中填充尽可能多的项目。

3) 仅在 2 个项目之间有分隔符。

推荐算法:

获取容器的宽度获取每个项目未指定的宽度(为此,我必须创建一个自定义 textView 来覆盖onMeasure())。

计算并放在一边"last line remaining width"

如果下一个 textView 可以适合最后一行剩余宽度: 

  • 使最后一个分隔符可见
  • 把它放在同一行并移动到下一个 textView 项目

别的:

  • 打开新行remaining width = (container's width - current item's width)
  • 使最后一个分隔符不可见
  • 将当前项目放在该行中(如果需要,换行)

我有两个选择:

  1. 使用水平线性布局的垂直线性布局。
  2. 使用约束布局。

我会填写一个列表列表,并通过代码填充水平线性布局。

或者通过代码填充约束布局(不太通用,我想更难)。

有没有更简单的解决方案?

在此处输入图像描述

4

1 回答 1

1

如果我正确理解您的要求,我相信Google 的 FlexboxLayout 库应该完全符合您的要求。

您可能会使用 a FlexboxLayout(而不是 aRecyclerView和 a FlexboxLayoutManager),但值得注意的是,该库还支持回收。

于 2019-10-30T16:47:13.317 回答