AutoTextView проблема максимального размера - PullRequest
0 голосов
/ 24 мая 2018

Я получаю этот сбой в своем приложении. Причина:

java.lang.IllegalArgumentException: максимальный размер текста в автоматическом размере (24,674995px) меньше или равен минимальному размеру текста в автоматическом размере(31,5 пикс.)

С автоматическим TextView.Как правильно обрабатывать такие сценарии там, где происходит этот случай.

Ответы [ 3 ]

0 голосов
/ 07 января 2019

У меня точно такая же проблема возникла сегодня.Вообще говоря, когда у меня возникает проблема, я не могу объяснить, что это устройство Samsung.Это не отличается, как вы сказали.В основном тема по умолчанию на телефонах Samsung устанавливает минимальный размер.Для нас решением было специально добавить autoSizeMinTextSize="12dp".

0 голосов
/ 21 мая 2019

Вот еще одно решение, которое зависит от ваших потребностей и того, почему оно вам не подходит.Проблема заключается в том, что пользователь изменил размер шрифта по умолчанию в настройках дисплея своего устройства (в частности, он увеличил масштаб, чтобы сделать текст больше).Таким образом, размер текста больше указанного вами максимума, поскольку минимум по умолчанию (поскольку вы не указали минимум и значение по умолчанию IS масштабируется по предпочтению пользователя) больше вашего максимума.

Указаниеминимум - только решение, если вы хотите игнорировать предпочтения пользователя по масштабированию.В некоторых случаях это требуется (в моем проекте мы просто не можем соблюдать желаемый размер текста пользователя в конкретном случае, поскольку этот текст привязан к визуальным элементам с фиксированным размером).

«Правильное» решение, вто, что он учитывает предпочтения масштабирования пользователя, заключается в использовании sp единиц (которые не зависят от плотности, как dp, но они масштабируются по предпочтениям пользователя) вместо dp единиц.Если вы сделаете это, вы все равно можете указать только максимальный размер шрифта, так как этот максимум будет соответственно масштабирован вместе с минимальным значением по умолчанию, которое вы не указали.

Итак, чтобы подвести итог, вы всегда должны использовать spединицы для указания размеров, связанных с текстом, если вы не хотите специально игнорировать пользовательское масштабирование из-за требований макета.

Кроме того, это легко проверить.Просто зайдите в Настройки-> Шрифт и увеличение экрана-> Размер шрифта и установите его в «Огромный».В любом случае, вы уже должны проверять свои макеты по отношению к переменным такого типа.

0 голосов
/ 24 мая 2018

Вы должны установить значения свойств autoSizeMaxTextSize для TextView, превышающие autoSizeMinTextSize.

Неправильно

    <android.support.v7.widget.AppCompatTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoSizeMaxTextSize="24.674995px"
    android:autoSizeMinTextSize="31.5px"/>

Правильно

    <android.support.v7.widget.AppCompatTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoSizeMaxTextSize="31.5px"
    android:autoSizeMinTextSize="24.674995px"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...