ConstraintLayout忽略约束

时间:2016-07-01 17:27:08

标签: android android-constraintlayout

我有一个带有几个元素和两个按钮的ConstraintLayout

我试图通过使用顶部和底部约束并使用bias属性来获得底部/左/右对齐来将按钮放在底部。

所有内容都在编辑器(Android studio 2.2 P3)中正确显示,但是当我运行应用时,没有任何内容正确显示。

非常感谢任何帮助。

见下layout XML

的相关部分
<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"
    android:id="@+id/relativeLayout"
    android:paddingTop="10dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp">

   ...snip...

    <Button
        android:text="Reset"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        app:layout_constraintLeft_toLeftOf="@+id/relativeLayout"
        app:layout_constraintBottom_toBottomOf="@+id/relativeLayout"
        android:layout_marginBottom="16dp" />

    <Button
        android:text="Apply"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/profile_apply_button"
        app:layout_constraintLeft_toLeftOf="@+id/relativeLayout"
        android:layout_marginLeft="16dp"
        android:layout_marginStart="16dp"
        app:layout_constraintTop_toTopOf="@+id/relativeLayout"
        android:layout_marginTop="16dp"
        app:layout_constraintRight_toRightOf="@+id/relativeLayout"
        android:layout_marginRight="16dp"
        android:layout_marginEnd="16dp"
        app:layout_constraintBottom_toBottomOf="@+id/relativeLayout"
        android:layout_marginBottom="16dp"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintVertical_bias="1.0" />
 </android.support.constraint.ConstraintLayout>

View in editor

View when running

2 个答案:

答案 0 :(得分:1)

我能够通过使用设置为左/下/右边缘的垂直和水平指南解决问题,并且我的控件正确地符合这些指南。

答案 1 :(得分:1)

我的猜测是这是从一个片段加载的?如果是这样,而不是使用像:

这样的东西
app:layout_constraintLeft_toLeftOf="@+id/relativeLayout"

你应该使用:

app:layout_constraintLeft_toLeftOf="parent"

(自ConstraintLayout alpha 5开始提供)。最好还是更新到Android Studio的最新版本(例如2.2 beta),编辑器将为您完成替换这些引用的工作。