|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Выравнивание и перенос строк в TextField
Друзья! Столкнулся с неожиданной и необъяснимой проблемой.
Вот такой код настройки экземпляра TextField: Если wordWrap установлен в false, то текст корректно выравнивается по правому краю. Но стоит только установить перенос слов в true, как настройка TextFieldAutoSize "слетает" и текст выводится, выровненным по левому краю области. что я делаю не так? Спасибо.
__________________
Не сломано - не чини! |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Автосайз вообще не для выравнивания текста, а для управления размерами и положением поля, что ясно следует из его названия.
Для выравнивания ТЕКСТА внутри поля надо использовать TextFormat#align Добавлено через 15 минут если просто хочется понять "логику", почему так — выравнивания текста при автосайзе это вынужденная мера; поле подстраивается под длину строки. Самой длинной строки. Допустим, у тебя в поле уже есть три строки скажем по 10 символов, и тут добавляется строка длиной 15. Если автосайз поля привязывет его координату к правому краю, оно расширяется влево (сохраняет координаты поля). Если при этом текст не выравнивать по правому краю, а по левому как обычно, то все строки должны будут ПРЫГНУТЬ влево вместе с левым краем поля, то есть изменят свое положение в пространстве непредсказуемым образом, что недопустимо)))) Именно для этого при установке правого автосайза включается выравнивание вправо. Теперь дальше — если ты включаешь перенос текста, то автосайз по ширине больше не нужен, поле будет менять только высоту, перенося текст который не вошел по ширине на следующую строку. Значит никто влево прыгать не будет и выравнивание по правому краю не нужно.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
|
Круто, спасибо, Wolsh, как всегда исчерпывающе! А я грешным делом думал, что autoSize - это и ширина, и выравнивание в одном флаконе
__________________
Не сломано - не чини! |
Часовой пояс GMT +4, время: 00:50. |
|
« Предыдущая тема | Следующая тема » |
|
|