Приложения, использующие AndroidX, не масштабируют текст - PullRequest
2 голосов
/ 08 февраля 2020

Текстовые поля не масштабируются, если пользователь изменяет размер шрифта из системных настроек. Если пользователь установит для текста наименьший размер в приложении, он останется таким же, а если для него будет установлен самый большой размер текста, приложение сохранит тот же размер.

Следует учитывать, что я использую AndroidX и проект fre sh и до сих пор эта проблема возникала только на android 7, а не на android 6,8,9 или 10. Эта проблема начала возникать после обновления моего проекта для использования AndroidX.

Шаги для воспроизведения:

  1. Создание проекта fre sh android с использованием android studio 3.5.3
  2. Запуск проекта с использованием устройства android с android 7. На этом этапе размер системного шрифта является постоянным.
  3. Go в соответствии с настройками системы и измените размер шрифта в соответствии с настройками экрана или в режиме доступности. Измените размер текста на минимальный или самый большой, как вам удобно.
  4. Перезапустите приложение или верните приложение.
  5. Вы видите, что текст Hello World не изменился.
  6. Я тестировал устройства, работающие android 10, 9, 8, 7 и 6. Но, похоже, это происходит на android 7.

Код, связанный с

app / build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.marissa.and.alex.demotext"
        minSdkVersion 22
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

app / src / main / res / layout / content_main. xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Как вы можете видеть здесь это Проект создан только для проверки этой проблемы масштабирования.

...