我在Android Studio 3.01中使用约束布局,我希望四个按钮具有相同的权重,我为四个按钮设置了app:layout_constraintHorizontal_weight="1"
。
但是这四个按钮的重量不同,我做错了什么?
XML文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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">
<LinearLayout
android:id="@+id/linearLayoutToolBar"
style="@style/myToolbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<Button
android:id="@+id/btnBackup"
style="@style/myTextMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/btnRestore"
android:text="Backup" />
<Button
android:id="@+id/btnRestore"
style="@style/myTextMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toRightOf="@+id/btnBackup"
app:layout_constraintRight_toLeftOf="@+id/btnMore"
android:text="Restore" />
<Button
android:id="@+id/btnMore"
style="@style/myTextMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toRightOf="@+id/btnRestore"
app:layout_constraintRight_toLeftOf="@+id/btnExit"
android:text="More" />
<Button
android:id="@+id/btnExit"
style="@style/myTextMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toRightOf="@+id/btnMore"
app:layout_constraintRight_toRightOf="parent"
android:text="Exit" />
</LinearLayout>
</android.support.constraint.ConstraintLayout>
致:Lalit Singh Fauzdar
但屏幕尺寸为4英寸
时效果不佳答案 0 :(得分:0)
尝试给包含LinearLayout
的水平方向,然后使用android:layout_weight
为4个按钮中的每个按钮提供相同的布局权重:
<LinearLayout
android:id="@+id/linearLayoutToolBar"
android:orientation="horizontal"
style="@style/myToolbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<Button
android:id="@+id/btnBackup"
style="@style/myTextMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Backup" /> <!-- one fourth of horizontal space -->
<Button
android:id="@+id/btnRestore"
style="@style/myTextMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Restore" />
<Button
android:id="@+id/btnMore"
style="@style/myTextMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="More" />
<Button
android:id="@+id/btnExit"
style="@style/myTextMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Exit" />
</LinearLayout>
答案 1 :(得分:0)
为什么你在LinearLayout
中使用ConstraintLayout
,只是在没有LinearLayout
的情况下执行此操作,并且当他们的父母是父母时,你也在所有按钮中使用Constraints
LinearLayout
。
这是必要的答案:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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">
<Button
android:id="@+id/btnBackup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_chainStyle="spread_inside"
android:layout_marginStart="10dp"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/btnRestore"
android:text="Backup" />
<Button
android:id="@+id/btnRestore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toRightOf="@+id/btnBackup"
app:layout_constraintRight_toLeftOf="@+id/btnMore"
android:text="Restore" />
<Button
android:id="@+id/btnMore"
android:layout_width="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_height="wrap_content"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toRightOf="@+id/btnRestore"
app:layout_constraintRight_toLeftOf="@+id/btnExit"
android:text="More" />
<Button
android:id="@+id/btnExit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="10dp"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toRightOf="@+id/btnMore"
app:layout_constraintRight_toRightOf="parent"
android:text="Exit" />
</android.support.constraint.ConstraintLayout>
我已从按钮中删除了style属性,以便在我的项目中对其进行测试。只需添加它们。