Как реализовать android.support.v4.widget.TextViewCompat для автоматического изменения размера текста, если API <26 - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь реализовать новую функцию авторазмера текста в моем приложении. Мне нужно нацелиться на API 21, затем я читаю что-то об обратной совместимости, используя android.support.v4.widget.TextViewCompat, но на самом деле я не понимаю, как это реализовать.

    <android.support.v4.widget.AppCompatTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:autoSizeMaxTextSize="100sp"
        android:autoSizeMinTextSize="8sp"
        android:autoSizeStepGranularity="2sp"
        android:autoSizeTextType="uniform"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

Этот код абсолютно неверен, потому что "Hello World!" текст исчезнет.

Между тем этот код:

    <android.support.v7.widget.AppCompatTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:autoSizeMaxTextSize="100sp"
        android:autoSizeMinTextSize="8sp"
        android:autoSizeStepGranularity="2sp"
        android:autoSizeTextType="uniform"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

... кажется хорошим, но редактор продолжает предупреждать о минимальном уровне API 26 ...

Вот мои реализации Gradle:

    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-core-utils:28.0.0'
    implementation 'com.github.bumptech.glide:glide:3.8.0'
    implementation 'com.android.support:support-v4:28.0.0'

Редактировать: пока я пытаюсь работать с android.support.v7.widget.AppCompatTextView, я обнаружил еще одну проблему (Java):

TextViewCompat textViewCompact;
textViewCompact = findViewById(R.id.TextView1);

Последняя строка помечена как ошибка: «Тип параметра T имеет несовместимые верхние границы: View и TextViewCompact» Я начинаю думать, чтобы продолжать использовать TextView и автоматически изменить его размер:

TextView textView = findViewById(R.id.TextView1);
TextViewCompat.setAutoSizeTextTypeWithDefaults(textView, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);

Это правильный способ его использования?

1 Ответ

0 голосов
/ 10 апреля 2019

в xml

<android.support.v7.widget.AppCompatTextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    app:autoSizeMaxTextSize="100sp"
    app:autoSizeMinTextSize="8sp"
    app:autoSizeStepGranularity="2sp"
    app:autoSizeTextType="uniform"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

в Java

    AppCompatTextView textView = findViewById(R.id.text);
    TextViewCompat.setAutoSizeTextTypeWithDefaults(textView, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM);
...