手机和手机上的布局模拟器与设计师

时间:2017-08-24 03:40:46

标签: android android-layout android-studio android-constraintlayout

我正在尝试一个简单的布局练习,但我很难让简单的布局工作。

在设计师中如下:

enter image description here

但是在运行时,模拟器或真实手机上的输出是:

enter image description here

Xml标记如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.example.hceng.myapplication.MainActivity"
 tools:layout_editor_absoluteY="81dp"
 tools:layout_editor_absoluteX="0dp">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="E-mail:"
    tools:layout_editor_absoluteY="52dp"
    tools:layout_editor_absoluteX="18dp" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click Me!"
    tools:layout_editor_absoluteX="148dp"
    tools:layout_editor_absoluteY="96dp" />

<EditText
    android:id="@+id/editText"
    android:layout_width="266dp"
    android:layout_height="36dp"
    android:ems="10"
    android:inputType="textEmailAddress"
    tools:layout_editor_absoluteX="66dp"
    tools:layout_editor_absoluteY="41dp" />

</android.support.constraint.ConstraintLayout>

我是这种标记语言的新手,但我觉得它看起来很简单,绝对定位。在任何情况下,设计师看到的布局都是我想要的。为什么以上不起作用?

3 个答案:

答案 0 :(得分:0)

如果未绑定到 ConstraintLayout

,则可以尝试此操作
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.hceng.myapplication.MainActivity">

    <RelativeLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:gravity="center">

        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/email_tv"
        android:text="E-mail:" />

        <EditText   
        android:id="@+id/editText"
        android:layout_width="266dp"
        android:layout_height="36dp"
        android:ems="10"
        android:layout_toRightOf="@+id/email_tv"
        android:inputType="textEmailAddress" />
    </RelativeLayout>

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click Me!"
        android:gravity="center" />
</LinearLayout>

答案 1 :(得分:0)

约束布局有一些限制,但我不确定颜色是否是其中之一。

<强>第一

您可以尝试将约束布局更改为协调器布局或相对布局。

如果失败

也许,Android Manifest中的目标SDK版本太高,如果目标版本高于手机版本,它将恢复为默认值。所以你可以尝试放置一个较低的目标版本。

答案 2 :(得分:0)

根据文件

  

当您将视图拖放到布局编辑器中时,即使它没有约束,它也会保留在您离开的位置。但是,这只是为了使编辑更容易;如果在设备上运行布局时视图没有约束,则会在位置[0,0](左上角)绘制它。

这就是为什么你在编辑器中正确看到布局但在模拟器上看不到的原因。