Проблема с этой проблемой пользовательского интерфейса:
1) У меня есть 3 textViews
, который я хочу сохранить в одном родительском представлении.
2) Я хочу заполнить как можно больше элементовкак можно меньше строк.
3) Разделитель существует только между двумя элементами.
Предлагаемый алгоритм:
Получить ширину контейнераПолучить для каждого элемента неопределенную ширину (Для этогоМне нужно создать собственный textView для переопределения onMeasure()
).
Вычислить и оставить в стороне "last line remaining width"
.
Если следующий textView может поместиться в последней ширине оставшейся строки:
- сделать последний разделитель видимым
- поместить его в ту же строку и перейти к следующему элементу textView
else:
- открытьновая строка с
remaining width = (container's width - current
item's width)
- делает последний разделитель невидимым
- помещает текущий элемент в эту строку (разрыв строки при необходимости)
У меня есть два варианта:
- Для использования вертикальной линейной разметки горизонтальных линейных разметок.
- Чтобы использовать макет ограничения.
Я бы заполнил список списков и заполнил бы горизонтальные линейные макеты с помощью кода.
Или заполнил макет ограничения с помощьюкод (менее общий, и я думаю, более сложный).
Есть ли более простое решение?
![enter image description here](https://i.stack.imgur.com/gxmyX.jpg)