2016-01-29 3 views
1

У меня есть список с заголовками, исходящими из источника данных. Длина названия неизвестна и может быть одной строкой, двумя строками и даже более ... под заголовком я хочу поместить имя автора сообщения.Appcelerator Titanium - настройка высоты или метки максимальной высоты

Я поместил две метки (ярлык заголовка и метку автора внутри представления с layout: 'vertical', который помещает метку автора под ярлыком названия. Но все равно пришлось каким-то образом ограничить количество строк, отображаемых заголовком, - я хочу имеют максимум 2 строки, поэтому я установил высоту метки объекта.

Устанавливая высоту метки, она ограничивает количество отображаемых строк, это вызывает другую проблему - в строках, где заголовок имеет 2 строки или больше всего выглядит великолепно, но в строках, где заголовок - только одна строка, между этой строкой и именем автора есть пробел, и я хочу, чтобы имя автора было под меткой (важно отметить - метка автора имеет другой размер шрифта и цвет, чем название).

Если бы это был просто старый html, я бы просто установил max-height свойство css - но Titanium не имеет такого свойства в Views/Labels. Есть ли способ получить максимальную высоту в представлении?

ответ

0

Нет такого свойства max-height, которое поддерживается Appcelerator для представлений. Но что вы можете сделать, вы можете прослушать postlayout событие для просмотра и после запуска вы можете получить rect, чтобы получить высоту представления. Теперь вы можете сделать свою магию. Если высота представления больше некоторого значения, которое вы хотите, тогда вы можете его исправить, иначе пусть останется как есть.

Сообщите нам, если он сработает для вас. Если нет, мы можем попытаться найти какое-то другое решение.

+0

Ярлык заголовка, который у меня есть, находится внутри элемента управления ListView. Я установил событие onPostlayout на ярлыке заголовка, но я вижу, что он не вызывается постоянно - в основном он называется свитком «ListView» - советом? – developer82

0

На Android вы можете использовать maxLines на этикетке.

Для просмотров и iOS вы можете сделать следующее. Установите вид height:Ti.UI.SIZE и используйте bottom, чтобы установить минимальное пространство между дном представления и его родительским элементом. Это работает только в том случае, если родитель имеет фиксированный размер.

Прослушивание post layout на ListView не будет работать, так как вы должны установить это на ListView, но не имеют способ доступа к rect или size свойство взглядов ListItem.

+0

испробовал решение iOS - не работал. Он просто создал дополнительное пространство между меткой заголовка и меткой автора – developer82

+0

Он работает только, если я удаляю «layout: vertical» из родительского представления. но тогда ярлык не помещается прямо под заголовком – developer82

+0

Не забудьте также установить 'top' –

0

Я только что добавил numberOfLines в SDK для iOS: https://jira.appcelerator.org/browse/TIMOB-24071 Это называется maxLines для Android паритета. Это действительно работает для ярлыков внутри шаблонов ListView.

Смежные вопросы