Текстовые поля не масштабируются, если пользователь изменяет размер шрифта из системных настроек. Если пользователь установит для текста наименьший размер в приложении, он останется таким же, а если для него будет установлен самый большой размер текста, приложение сохранит тот же размер.
Следует учитывать, что я использую AndroidX и проект fre sh и до сих пор эта проблема возникала только на android 7, а не на android 6,8,9 или 10. Эта проблема начала возникать после обновления моего проекта для использования AndroidX.
Шаги для воспроизведения:
- Создание проекта fre sh android с использованием android studio 3.5.3
- Запуск проекта с использованием устройства android с android 7. На этом этапе размер системного шрифта является постоянным.
- Go в соответствии с настройками системы и измените размер шрифта в соответствии с настройками экрана или в режиме доступности. Измените размер текста на минимальный или самый большой, как вам удобно.
- Перезапустите приложение или верните приложение.
- Вы видите, что текст Hello World не изменился.
- Я тестировал устройства, работающие 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>
Как вы можете видеть здесь это Проект создан только для проверки этой проблемы масштабирования.