Android Studio中的约束布局无法正常工作

3

我是Android的新手,我在Android Studio上创建了我的第一个简单应用程序,但约束布局在真机或虚拟机上无法正确工作。我想将一个按钮放在布局中心,以及一个编辑文本放在布局顶部,但当我运行时,它们都位于右上角相同的位置,因此我无法输入文本并按下按钮。
我尝试使用RelativeLayout它可以正常工作,所以我猜问题可能来自ConstraintLayout。请帮我解决这个问题!

我已经安装了“ConstraintsLayout For Android 1.0.1或更低版本”和“Solver For ConstraintsLayout 1.0.1或更低版本”。在build.gradle文件中,我添加了compile 'com.android.support.constraint:constraint-layout:1.0.1' 我使用的是Android Studio版本2.3。 以下是我的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"
tools:context="my.android.myfirstapp.MainActivity">


<Button
    android:id="@+id/btn_jump"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Jump Activity"
    tools:layout_editor_absoluteX="128dp"
    tools:layout_editor_absoluteY="269dp" />

<EditText
    android:id="@+id/edt_Name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPersonName"
    android:text=""
    tools:layout_editor_absoluteX="85dp"
    tools:layout_editor_absoluteY="62dp" />
</android.support.constraint.ConstraintLayout>

这是我的简单应用程序运行时的样子:
在此输入图片描述


在这里找到答案。https://dev59.com/Juk5XIcBkEYKwwoY_Ox3 将styles.xml中的AppTheme更改为Base.Theme。 - paul
1个回答

2

您的约束设置不正确,如果您不确定,请单击下面图片中显示的按钮以查看问题所在。通常,所有布局问题都会在那里显示。

布局问题

使用以下代码可以修复约束问题。

<?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:layout_editor_absoluteY="81dp"
    tools:layout_editor_absoluteX="0dp">


    <Button
        android:id="@+id/btn_jump"
        android:layout_width="128dp"
        android:layout_height="48dp"
        android:text="Jump Activity"
        tools:layout_constraintTop_creator="1"
        tools:layout_constraintRight_creator="1"
        tools:layout_constraintBottom_creator="1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        tools:layout_constraintLeft_creator="1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/edt_Name"
        android:layout_width="215dp"
        android:layout_height="43dp"
        android:ems="10"
        android:inputType="textPersonName"
        android:text=""
        tools:layout_constraintTop_creator="1"
        tools:layout_constraintRight_creator="1"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginTop="107dp"
        tools:layout_constraintLeft_creator="1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintHorizontal_bias="0.502" />
</android.support.constraint.ConstraintLayout>

希望这能帮到你,如果有效请标记答案。

3
这段XML代码是由Android Studio生成的,我没有看到任何像你的示例图片中那样的警告或错误。但是你的代码可以完美运行,后来我发现你的一些代码行使它正确工作,它们是:app:layout_constraintBottom_toBottomOf="parent",app:layout_constraintRight_toRightOf="parent", app:layout_constraintLeft_toLeftOf="parent",app:layout_constraintTop_toTopOf="parent"。最后,感谢您的帮助!(抱歉,我不知道如何在此评论中进行代码格式化) - Son_Nguyen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接