есть ли в Android какие-либо функции типа «повторитель»? У меня есть относительный макет (внутри строки в списке), и внутри я бы хотел, чтобы ряд TextView отображался один за другим (как если бы они были дочерними строками в строке списка). Проблема в том, что количество этих «дочерних строк» будет варьироваться. есть ли способ сделать это, или я должен просто создать объекты TextView в коде и программно добавить их в линейный или табличный макет?
функциональность повторителя Android
Ответы (2)
Самая близкая вещь (помимо ListView / ListAdapter, естественно), о которой я могу думать навскидку, - это ViewSwitcher и ViewSwitcher.ViewFactory, но есть на самом деле ничего волшебного в этом нет: это интерфейс, который можно вызвать, чтобы получить представление.
Поскольку это только одна строка для получения представления и добавления его в вашу текущую иерархию в любом случае (View.inflate(context, R.layout.somelayout, myContainerViewGroup)
) кажется глупым использовать что-то более тяжелое, но если вы чувствуете себя лучше, заключив это в какой-то Factory, проверьте AOSP исходный код ViewSwitcher.
Один из вариантов - TextViews поддерживает многострочный текст. Таким образом, вы можете создать текст с помощью StringBuilder, используя «\ n» для новых строк, и не беспокоиться о нескольких текстовых представлениях.