猿问

使布局适用于所有具有固定尺寸的 Android 设备

我面临着让我的布局在所有具有相同尺寸的 Android 设备上工作的麻烦。我注意到每次朋友安装我的应用程序时,Buttons 和 TextViews 都会改变它们的初始位置,有时会上升或下降,或者使其中的文本环绕而不是全部显示(我将附上其中一个的一些代码布局为例)。我需要一些好的文档和/或教程以获得最佳布局设计。


繁星点点滴滴
浏览 123回答 1
1回答

慕婉清6462132

发生这种情况是因为您在视图上使用了固定大小的尺寸,并且因为不同的手机有不同的屏幕尺寸,您会看到这种差异。如评论部分所述 - 您可以使用ConstraintLayout创建一个布局以支持所有不同的屏幕尺寸。这是您想要的布局的示例(无论如何看起来都相似):<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:layoutDirection="ltr"  android:orientation="vertical"><android.support.constraint.ConstraintLayout    android:layout_width="match_parent"    android:layout_height="wrap_content">    <Button        android:id="@+id/button6"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button5"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent" />    <Button        android:id="@+id/button5"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button7"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button6" />    <Button        android:id="@+id/button7"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button8"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button5" />    <Button        android:id="@+id/button8"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button9"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button7" />    <Button        android:id="@+id/button9"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button10"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button8" />    <Button        android:id="@+id/button10"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button11"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button9" />    <Button        android:id="@+id/button11"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button12"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button10" />    <Button        android:id="@+id/button12"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button13"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button11" />    <Button        android:id="@+id/button13"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button14"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button12" />    <Button        android:id="@+id/button14"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button15"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button13" />    <Button        android:id="@+id/button15"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button16"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button14" />    <Button        android:id="@+id/button16"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button17"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button15" />    <Button        android:id="@+id/button17"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toTopOf="@+id/button18"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button16" />    <Button        android:id="@+id/button18"        android:layout_width="0dp"        android:layout_height="wrap_content"        android:layout_marginStart="8dp"        android:layout_marginTop="8dp"        android:layout_marginEnd="8dp"        android:layout_marginBottom="8dp"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintHeight_percent=".2"        app:layout_constraintHorizontal_bias="0.5"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toBottomOf="@+id/button17" />    </android.support.constraint.ConstraintLayout></ScrollView>
随时随地看视频慕课网APP

相关分类

Java
我要回答