Что такое параметр отображения в DynamicLayout
DynamicLayout
конструктор имеет base
параметр и display
параметр, оба из которых являются CharSequence
, (StaticLayout
для сравнения не хватает этого.)
DynamicLayout (CharSequence base,
CharSequence display,
TextPaint paint,
int width,
Layout.Alignment align,
float spacingmult,
float spacingadd,
boolean includepad,
TextUtils.TruncateAt ellipsize,
int ellipsizedWidth)
Что это display
параметр значит? В документации ничего не сказано. Я посмотрел в исходный код, и я вижу как mBase
и mDisplay
но я не могу понять разницу между ними. Я думаю, что display
имеет какое-то отношение к эллиптическому тексту, хотя причина, по которой нужно передавать две разные последовательности символов, мне не подходит.
Самому базовому конструктору не хватает display
параметр (устанавливается равным base
в исходном коде), поэтому я предполагаю display
обеспечивает некоторую дополнительную функциональность. Что это?
1 ответ
TextView
использует его с разными аргументами, когда есть TransformationMethod
прилагается, например, в случае <EditText android:password="true"/>
,
DynamicLayout
присоединяет прослушиватель изменений к базовому тексту, но в противном случае выполняет весь макет преобразованного текста. Таким образом, когда основной текст будет отредактирован, он получит уведомление и обновит макет на затронутом диапазоне в преобразованном тексте.
когда base
знак равно display
он следит за изменениями и компоновкой CharSequence
, Какое поведение ожидается для нетрансформированного текста.