Android 为什么我的布局在小屏幕上填充不好?
考虑到我使用了Android 为什么我的布局在小屏幕上填充不好?,android,android-layout,android-constraintlayout,android-button,android-textinputlayout,Android,Android Layout,Android Constraintlayout,Android Button,Android Textinputlayout,考虑到我使用了ConstraintLayout,我不知道为什么按钮不会根据屏幕大小缩小。每当我使用4英寸的屏幕尺寸时,它就不太合适。另外,随着appcompat:1.1.0的更新,TextInputLayout得到了额外的填充。我不知道如何修复它。 这是我的密码: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayou
ConstraintLayout
,我不知道为什么按钮不会根据屏幕大小缩小。每当我使用4英寸的屏幕尺寸时,它就不太合适。另外,随着appcompat:1.1.0
的更新,TextInputLayout
得到了额外的填充。我不知道如何修复它。
这是我的密码:
<?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"
android:padding="10dp"
tools:context=".activities.MainActivity">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_formula_bar"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:hintEnabled="false"
app:layout_constraintBottom_toTopOf="@+id/textInputLayout4"
app:layout_constraintEnd_toStartOf="@+id/b_copy"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/tiet_formula_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusableInTouchMode="false"
android:inputType="none"
android:maxLength="40"
android:singleLine="true"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
tools:layout_editor_absoluteY="11dp" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2">
<TextView
android:id="@+id/tv_full_formula"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:id="@+id/tv_memory"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
</androidx.appcompat.widget.LinearLayoutCompat>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/b_copy"
style="@style/myIconButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cornerRadius="0dp"
app:icon="?attr/actionModeCopyDrawable"
app:layout_constraintBottom_toBottomOf="@+id/til_formula_bar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/til_formula_bar"
app:layout_constraintTop_toTopOf="@+id/til_formula_bar" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:minHeight="20dp"
app:hintEnabled="false"
app:layout_constraintBottom_toTopOf="@+id/b_save_hisab"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/til_formula_bar">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/tiet_hisab_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:hint="@string/details"
android:inputType="textAutoCorrect|textMultiLine|textAutoComplete"
android:textAppearance="@style/TextAppearance.AppCompat.Small" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/b_save_hisab"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:enabled="false"
android:text="@string/save"
app:icon="@android:drawable/ic_menu_save"
app:iconGravity="textStart"
app:layout_constraintBottom_toTopOf="@+id/b_date"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout4" />
<Button
android:id="@+id/b_date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:textSize="10sp"
app:icon="@android:drawable/ic_menu_my_calendar"
app:iconGravity="textStart"
app:layout_constraintBottom_toTopOf="@+id/ctl_calcy"
app:layout_constraintEnd_toStartOf="@+id/b_picture"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/b_save_hisab" />
<Button
android:id="@+id/b_picture"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/attachments"
app:icon="@android:drawable/stat_notify_more"
app:layout_constraintBaseline_toBaselineOf="@+id/b_date"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/b_date"
app:srcCompat="@android:drawable/ic_menu_camera" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ctl_calcy"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/b_date"
tools:visibility="invisible">
<Button
android:id="@+id/b_mem_minus_equals"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol__mem_minus_equals"
app:layout_constraintBaseline_toBaselineOf="@+id/b_mem_add_equals"
app:layout_constraintEnd_toStartOf="@+id/b_mem_recall"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_mem_add_equals" />
<Button
android:id="@+id/b_eight"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_zero"
app:layout_constraintBaseline_toBaselineOf="@+id/b_seven"
app:layout_constraintEnd_toStartOf="@+id/b_nine"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_seven" />
<Button
android:id="@+id/b_three"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_three"
app:layout_constraintBaseline_toBaselineOf="@+id/b_two"
app:layout_constraintEnd_toStartOf="@+id/b_plus"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_two" />
<Button
android:id="@+id/b_nine"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_nine"
app:layout_constraintBaseline_toBaselineOf="@+id/b_eight"
app:layout_constraintEnd_toStartOf="@+id/b_multiply"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_eight" />
<Button
android:id="@+id/b_percentage"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_percent"
app:layout_constraintBaseline_toBaselineOf="@+id/b_zero"
app:layout_constraintEnd_toStartOf="@+id/b_divide"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_zero" />
<Button
android:id="@+id/b_clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_clear"
app:layout_constraintBottom_toTopOf="@+id/b_mem_clear"
app:layout_constraintEnd_toStartOf="@+id/ib_backspace"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/b_minus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_minus"
app:layout_constraintBaseline_toBaselineOf="@+id/b_six"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_six" />
<Button
android:id="@+id/b_mem_clear"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_meme_clear"
app:layout_constraintBottom_toTopOf="@+id/b_one"
app:layout_constraintEnd_toStartOf="@+id/b_mem_add_equals"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/b_clear" />
<Button
android:id="@+id/b_divide"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_divide"
app:layout_constraintBaseline_toBaselineOf="@+id/b_percentage"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_percentage" />
<Button
android:id="@+id/b_five"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_five"
app:layout_constraintBaseline_toBaselineOf="@+id/b_four"
app:layout_constraintEnd_toStartOf="@+id/b_six"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_four" />
<Button
android:id="@+id/b_plus"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_plus"
app:layout_constraintBaseline_toBaselineOf="@+id/b_three"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_three" />
<Button
android:id="@+id/ib_backspace"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/backspace"
app:icon="@android:drawable/ic_input_delete"
app:layout_constraintBaseline_toBaselineOf="@+id/b_clear"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_clear"
app:srcCompat="@android:drawable/ic_input_delete" />
<Button
android:id="@+id/b_multiply"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_multiply"
app:layout_constraintBaseline_toBaselineOf="@+id/b_nine"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_nine" />
<Button
android:id="@+id/b_decimal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_decimal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/b_zero"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/b_seven" />
<Button
android:id="@+id/b_one"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_one"
app:layout_constraintBottom_toTopOf="@+id/b_four"
app:layout_constraintEnd_toStartOf="@+id/b_two"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/b_mem_clear" />
<Button
android:id="@+id/b_four"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_four"
app:layout_constraintBottom_toTopOf="@+id/b_seven"
app:layout_constraintEnd_toStartOf="@+id/b_five"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/b_one" />
<Button
android:id="@+id/b_zero"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_zero"
app:layout_constraintBaseline_toBaselineOf="@+id/b_decimal"
app:layout_constraintEnd_toStartOf="@+id/b_percentage"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_decimal" />
<Button
android:id="@+id/b_two"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_two"
app:layout_constraintBaseline_toBaselineOf="@+id/b_one"
app:layout_constraintEnd_toStartOf="@+id/b_three"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_one" />
<Button
android:id="@+id/b_mem_add_equals"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_mem_plus_equals"
app:layout_constraintBaseline_toBaselineOf="@+id/b_mem_clear"
app:layout_constraintEnd_toStartOf="@+id/b_mem_minus_equals"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_mem_clear" />
<Button
android:id="@+id/b_mem_recall"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/symbol_mem_recall"
app:layout_constraintBaseline_toBaselineOf="@+id/b_mem_minus_equals"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_mem_minus_equals" />
<Button
android:id="@+id/b_seven"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_seven"
app:layout_constraintBottom_toTopOf="@+id/b_decimal"
app:layout_constraintEnd_toStartOf="@+id/b_eight"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/b_four" />
<Button
android:id="@+id/b_six"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:insetLeft="6dp"
android:insetRight="6dp"
android:text="@string/digit_six"
app:layout_constraintBaseline_toBaselineOf="@+id/b_five"
app:layout_constraintEnd_toStartOf="@+id/b_minus"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/b_five" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
布局屏幕替换此:
android:layout\u height=“wrap\u content”
以及:
为此:
android:layout_height="0dp"
android:layout_width="0dp"
app:layout_constraintHeight_percent="0.1"
app:layout_constraintWidth_percent="0.1"
对每个按钮都这样做
wrap_content
意味着您的按钮将根据其自身的高度选择高度(它没有响应)
使用时
app:layout\u constraintHeight\u percent=“0.1”
app:layout\u constraintWidth\u percent=“0.1”
根据屏幕大小,按钮的大小和高度都将为10%,现在只需更改数字,它将保持响应。更换此按钮:
android:layout\u height=“wrap\u content”
以及:
为此:
android:layout_height="0dp"
android:layout_width="0dp"
app:layout_constraintHeight_percent="0.1"
app:layout_constraintWidth_percent="0.1"
对每个按钮都这样做
wrap_content
意味着您的按钮将根据其自身的高度选择高度(它没有响应)
使用时
app:layout\u constraintHeight\u percent=“0.1”
app:layout\u constraintWidth\u percent=“0.1”
根据屏幕大小,您的按钮的宽度和高度都将为10%,现在只需更改数字,它将保持响应。请尝试使用“附件”按钮
对于TextInputLayout,
您可以通过设置app:hintEnabled=“false”删除AppCompativeText上方的额外空间,但在您重新启用该选项之前,它不会显示提示。请尝试此操作以获取“附件”按钮
对于TextInputLayout,
您可以通过设置app:hintEnabled=“false”删除AppCompativeText上方的额外空间,但在您重新启用之前,它不会显示提示。这是什么意思?它不是响应性的吗?这不是编译吗?当我做这些更改时,我的布局完全扭曲了。我想知道如何显示更改。您是否将app:layout\u constraintheights\u percent=“0.1”
更改为更小的值,如0.005不,我完全按照您所说的那样更改了代码->在所有按钮小部件中进行了这些更改。因此,您所做的是-根据屏幕,每个按钮的高度都是10%,给按钮一个较小的数字,并发挥它的意思是什么-它不是响应?这不是编译吗?当我做这些更改时,我的布局完全扭曲了。我想知道如何显示更改。您是否将app:layout\u constraintheights\u percent=“0.1”
更改为更小的值,如0.005不,我完全按照您所说的那样更改了代码->在所有按钮小部件中进行了这些更改。因此,您所做的是-根据屏幕,每个按钮的高度都是10%,给按钮一个较小的数字,并发挥它