Что такое параметр отображения в 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, Какое поведение ожидается для нетрансформированного текста.

Другие вопросы по тегам