Как обнаружить метку была усечена на nativescript - PullRequest
0 голосов
/ 13 марта 2019

У меня есть метка с двумя строками текста, которая усекается после двух строк.Метка находится внутри GridLayout.Я хотел бы изменить размер шрифта, чтобы он соответствовал большему количеству текста при первом переполнении метки.

Моей первой мыслью было определить, был ли текст обрезан, и изменить его размер соответствующим образом, но я даже не могу этого обнаружить.На Android я знаю, что могу сделать что-то вроде this , но когда я вызываю myLabel.nativeElement.android.getLayout (), он возвращает значение null, которое, как я считаю, связано с тем, что nativeScript имеет другую систему компоновки.

Моя вторая мысль заключалась в том, чтобы рассчитать ожидаемую ширину с размером шрифта и количеством символов и сравнить ее с шириной фактической метки.Проблема в том, что getMeasuredWidth () возвращает 0 внутри textChange.Я видел онлайн-предложения использовать getMeasuredWith () внутри setTimeout с x количеством времени.Я чувствую, что это немного странно и приводит к состоянию гонки, которого я бы хотел избежать.Есть ли еще какое-нибудь событие, на котором будет установлен ярлык MeasureWith?

Я открыт для любых других идей, и я хотел бы услышать другие предложения.

Заранее спасибо, ребята!

...