0

我正在尝试制作一个英制到公制的转换应用程序,它运行良好,直到我遇到了 Android 模拟器的问题。模拟器中的布局完全搞砸了,我不知道为什么。http://imgur.com/a/IBOcs

编辑:

整个activity_main.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="com.example.daniel.converter.MainActivity"
    tools:layout_editor_absoluteY="73dp"
    tools:layout_editor_absoluteX="0dp">

    <TextView
        android:id="@+id/textViewMPH"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="MPH"
        tools:layout_editor_absoluteX="55dp"
        tools:layout_editor_absoluteY="90dp" />

    <EditText
        android:id="@+id/editTextMPH"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="number"
        tools:layout_editor_absoluteX="85dp"
        tools:layout_editor_absoluteY="77dp" />

    <TextView
        android:id="@+id/textViewTO"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="To"
        tools:layout_editor_absoluteX="55dp"
        tools:layout_editor_absoluteY="132dp" />

    <TextView
        android:id="@+id/textViewKMH"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="KMH"
        tools:layout_editor_absoluteX="55dp"
        tools:layout_editor_absoluteY="168dp" />

    <EditText
        android:id="@+id/editTextKMH"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="number"
        tools:layout_editor_absoluteX="85dp"
        tools:layout_editor_absoluteY="156dp" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Convert!"
        tools:layout_editor_absoluteX="146dp"
        tools:layout_editor_absoluteY="229dp" />

</android.support.constraint.ConstraintLayout>
4

1 回答 1

1

问题正在发生,因为您正在使用约束布局,但您没有为您的项目提供任何约束。因此,每个项目都显示在 (0,0) 位置。

约束布局说明:

布局编辑器允许您将小部件放置在画布上的任何位置,并使用设计时属性(例如 layout_editor_absoluteX)记录当前位置。这些属性不会在运行时应用,因此如果您将布局推送到设备上,小部件可能会出现与编辑器中显示的位置不同。要解决此问题,请通过从边缘连接拖动来确保小部件同时具有水平和垂直约束。

所以要么分配 x 和 y 值,要么使用 LinearLayout/RelativeLayout。

于 2017-05-15T06:20:19.747 回答