约束布局不起作用,可能是设计编辑器中的错误?



我正在使用android工作室创建我的第一个应用程序,这是我的第一个问题:

我想尝试约束布局。我已经使用设计编辑器的约束布局构建了布局(一起单击(。当我在Android模拟器中尝试布局时,所有按钮都在左上角移动:( 除了"Hello World"标签,它是在我创建第一个项目时自动生成的。

标签和按钮之间的区别在于,一些以 app:layout_constraint 开头的代码行。不见了。您可以在代码中看到它。

我做错了什么,还是错误? 我很高兴得到答案!:)

<?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="com.example.u0017007.coffeecounter.MainActivity">
<TextView
android:layout_width="136dp"
android:layout_height="30dp"
android:text="Hello World!"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.234" />
<Button
android:id="@+id/buttonAddCoffee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:freezesText="false"
android:text="@string/add_coffee"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="231dp" />
<Button
android:id="@+id/buttonRemoveCoffee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/remove_coffee"
tools:layout_editor_absoluteX="236dp"
tools:layout_editor_absoluteY="231dp" />
</android.support.constraint.ConstraintLayout>

tools:layout_editor_absoluteXtools:layout_editor_absoluteY仅用于预览,就像所有tools:XXXX一样。
您需要向视图添加约束。您可以添加 XML,也可以使用可视化编辑器进行添加。

有一个非常好的网站可以解释有关ConstraintsLayout的所有信息。

顺便说一下,如果您不设置约束,Android Studio 会用错误This view is not constrained, it only has designtime positions, so it will jump to (0,0) unless you add constraints来温暖您。

从上面的代码来看,您没有对按钮添加任何约束,这就是它们移动到左上角的原因。

<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">
<TextView
android:layout_width="136dp"
android:layout_height="30dp"
android:text="Hello World!"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.234" />
<Button
android:id="@+id/buttonAddCoffee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:freezesText="false"
android:text="ADD coffee"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="276dp"
app:layout_constraintRight_toLeftOf="@+id/buttonRemoveCoffee"
android:layout_marginRight="82dp"
android:layout_marginLeft="24dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintHorizontal_bias="1.0" />
<Button
android:id="@+id/buttonRemoveCoffee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="remove coffee"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="276dp"
android:layout_marginRight="24dp"
app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>

请参考以下链接 -

https://www.youtube.com/watch?v=z53Ed0ddxgM

tools:layout_editor_absoluteX="236dp">

工具:layout_editor_absoluteY="231dp">

工作室仅使用它们在图形编辑器中渲染。在运行时,

由于未设置约束,视图采用默认位置 (0,0(。

尝试对按钮和过程设置一些约束

最新更新