В течение многих лет я отчаянно стремился к тому, чтобы в TextViews для Android была предусмотрена функция размера шрифта «сжать, чтобы соответствовать», что есть в iOS, и теперь, когда наконец-то добавлено автоматическое изменение размера, я обнаружил, что это не просто «сжатие, чтобы соответствовать»но он также «расширяется, чтобы соответствовать», что на самом деле совсем не то, на что я надеялся.
Я уже устанавливаю свой предпочтительный размер шрифта в моем TextView (хотя не напрямую, я использую встроенные стили), единственный раз, когда мне нужно, чтобы размер шрифта автоматически изменялся, - это если текст не помещается внутри заданного пространства, и мне нужно уменьшить его до нужного размера.К сожалению, я получаю ситуацию, когда мне просто нужно установить текст, скажем, «Кенни», и вместо того, чтобы оставить его на TextAppearance.Medium
, потому что он вписывается в данное пространство, он превращается в нечто вроде 60sp
размер шрифта.Совершенно нелепо.
1) Есть ли прямой способ сказать, что авторазмер «только сжимается»?Я так не думаю, но в случае, если я пропустил это, я бы хотел, чтобы вы меня поправили.
2) Предполагая, что для № 1 нет варианта, я предполагаю, что мой единственный другой вариантэто установить autoSizeMaxTextSize
на то же значение, что и мой textSize
... но я стараюсь избегать каждой установки этого значения напрямую.Я стараюсь полагаться на TextAppearance.Small
, TextAppearance.Medium
и TextAppearance.Large
, когда это возможно.
Итак, как мне сослаться на значение textSize
и использовать его для установки autoSizeMaxTextSize
в моих стилях?
<style name="Text.Large" parent="TextAppearance.AppCompat.Large">
<item name="autoSizeTextType">uniform</item>
<item name="autoSizeMaxTextSize">?????</item>
</style>