android - 约束布局在 API 22 中异常工作
问题描述
使用 Constraint Layout时,支持 API 22 的手机中的所有活动都超出了框架,而在 22 以上的其他 API 级别中看起来很完美。应用程序的最低 SDK 级别为 21。我不明白为什么会发生这种情况API 22 完美支持约束布局。
膨胀的布局
<?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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="80dp">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/user_image_recycler_inflated_main_activity"
android:layout_width="70dp"
android:layout_height="70dp" app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="8dp" app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="8dp" android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent" android:layout_marginTop="8dp"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.095"
tools:src="@drawable/ic_person_black_24dp"
/>
<TextView
android:layout_width="233dp"
android:layout_height="29dp"
android:id="@+id/username_recycler_inflated_main_activity" app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="8dp"
app:layout_constraintStart_toEndOf="@+id/user_image_recycler_inflated_main_activity"
android:layout_marginStart="8dp"
app:layout_constraintTop_toTopOf="@+id/user_image_recycler_inflated_main_activity"
app:layout_constraintHorizontal_bias="0.017"
android:layout_marginTop="4dp"
android:textColor="#000"
android:hint="Username"
/>
<TextView
android:layout_width="233dp"
android:layout_height="29dp"
android:id="@+id/email_recycler_inflated_main_activity"
android:layout_marginStart="8dp"
app:layout_constraintEnd_toEndOf="@+id/username_recycler_inflated_main_activity"
android:layout_marginBottom="4dp"
app:layout_constraintBottom_toBottomOf="@+id/user_image_recycler_inflated_main_activity"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="@+id/username_recycler_inflated_main_activity"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/username_recycler_inflated_main_activity"
android:textColor="#000"
android:hint="timestamp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
梯度(模块:应用程序)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
androidExtensions {
experimental = true
}
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.two.pilots.messengerappkotlin"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
// Firebase
implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.google.firebase:firebase-firestore:17.1.5'
implementation 'com.google.firebase:firebase-storage:16.0.5'
implementation 'com.google.firebase:firebase-auth:16.1.0'
implementation 'com.google.firebase:firebase-database:16.0.5'
// circle image view
implementation 'de.hdodenhof:circleimageview:2.2.0'
// picasso
implementation 'com.squareup.picasso:picasso:2.71828'
// groupie
implementation 'com.xwray:groupie:2.3.0'
implementation 'com.xwray:groupie-kotlin-android-extensions:2.3.0'
// image compressor
implementation 'id.zelory:compressor:2.1.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
}
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android-extensions'
API 22、API 24、API 26 分别
解决方案
仅通过查看图像很难理解,但我认为这不是因为 API 级别,而是可能是由于您测试应用程序的设备之间的屏幕尺寸不同。
确保您的应用支持多种屏幕尺寸。如果您正在加载图像,请确保它们适合您使用的设备分辨率并且所有内容都受到很好的限制。
推荐阅读
- python-3.x - 使用 YahooDailyReader 检索 AMZN 股票数据
- vuejs2 - VueJS:子 - 父组件更新
- javascript - 在 Razor 的 JavaScript 函数中编写 c# 代码
- javascript - Bootstrap 多选 - 每组不选或最多选一个
- docker - Docker 和 Letsencrypt 证书再次出现 Keycloak 错误
- html - 移动问题上的 CSS 主题渐变背景
- sql - 如何格式化sql * plus中的整数?
- android -
我正在尝试在其他布局中重新使用带有按钮的布局,但我希望按钮的布局对于包含的每个不同布局都有不同的点击侦听器。任何想法?
第一个布局
<data> <variable name="model" type="co
- c++ - 在 CLion IDE 中运行但不在 Leetcode.com 上的 C++ 代码
- haskell - 在 Num 等类的实例之间移动