因此,基本上,我有一个带有4个按钮的活动,在Android Studio中,这些按钮看上去不像屏幕底部的软件按钮,但是当我在手机上运行它们时,它们却不是。我不确定底部按钮是否有正确的约束条件?
<?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"
tools:context=".NewMainMenu"
tools:layout_editor_absoluteY="25dp">
<Button
android:id="@+id/button"
android:layout_width="411dp"
android:layout_height="100dp"
android:layout_marginTop="258dp"
android:background="@android:color/holo_blue_light"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/button4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button4"
android:layout_width="411dp"
android:layout_height="100dp"
android:background="@android:color/holo_red_light"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/button3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
<Button
android:id="@+id/button3"
android:layout_width="411dp"
android:layout_height="100dp"
android:background="@android:color/holo_green_light"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/button2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button4" />
<Button
android:id="@+id/button2"
android:layout_width="411dp"
android:layout_height="100dp"
android:background="@android:color/holo_orange_light"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button3" />
</android.support.constraint.ConstraintLayout>
答案 0 :(得分:0)
如果从ConstraintLayout中使用,则可以添加以下属性:
app:layout_constraintBottom_toBottomOf="parent"
通过此代码,您的视图停留在布局的底部。
,对于其他视图,您可以从此代码中使用:
app:layout_constraintBottom_toBottomOf="@+id/{bottom View}"
答案 1 :(得分:0)
问题是您将按钮的高度和顶部按钮的顶部边距明确设置为固定值。在您的设备上,所有高度和填充的总和超过了设备的高度。
一个简单的解决方法是不将最上面的按钮的顶部约束到父级,并删除顶部边距。然后它将位于其下方的按钮上方,但不会从父项的顶部向下推。
通常,出于这个确切原因,应避免使用固定大小的宽度和高度。您可以利用ConstraintLayout中的加权链之类的东西来按比例而不是显式地调整大小。
有关更多信息,请参见ConstraintLayout文档。
希望有帮助!
答案 2 :(得分:0)
您的约束是错误的。您同时使用了app:layout_constraintTop_toBottomOf
和app:layout_constraintBottom_toTopOf
约束,这是错误的。仅使用app:layout_constraintBottom_toTopOf
约束来堆叠一个以上的约束。
使用此代码:
<?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"
tools:context=".NewMainMenu"
tools:layout_editor_absoluteY="25dp">
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="100dp"
android:background="@android:color/holo_blue_light"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/button4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.494"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="100dp"
android:background="@android:color/holo_red_light"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/button3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="100dp"
android:background="@android:color/holo_green_light"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/button2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="100dp"
android:background="@android:color/holo_orange_light"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
/>
</android.support.constraint.ConstraintLayout>
答案 3 :(得分:0)
<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/button3"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@android:color/holo_green_light"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/button2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@android:color/holo_blue_light"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent" />
<Button
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@android:color/holo_orange_dark"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/button3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" />