LinearLayouts将自身定位在(0,0)坐标上

时间:2017-07-18 17:07:23

标签: java android android-layout android-constraintlayout

我从Android Studio开始,遇到了LinearLayouts的问题,可能是微不足道的。

当我在模拟器上运行应用程序时,我的两个LinearLayouts都移动到左上角 - 因此(0,0)坐标。

在我拥有的所有可能性中,我无法找到解决方案。工作室可能知道这可能会发生,并说我应该"添加垂直/水平约束"因为在设备上推送布局可能会导致窗口小部件改变位置。但是我无法破译我应该键入什么来改变它。

这是代码,它是一个简单的计算器,我希望能够掌握基础知识。

`<?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.powerpes.kalkulacka.MainActivity">

    <LinearLayout
        android:layout_width="306dp"
        android:layout_height="360dp"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="27dp"
        tools:layout_editor_absoluteY="135dp">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="60dp">


            <Button
                android:id="@+id/tlacitkoC"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="C"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitkoDel"
                android:layout_width="76dp"
                android:layout_height="match_parent"
                android:text="Del"
                android:textSize="24sp" />

            <Button
                android:id="@+id/tlacitkoSqrt"
                android:layout_width="76dp"
                android:layout_height="match_parent"
                android:text=" √"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitkoPlusminus"
                android:layout_width="76dp"
                android:layout_height="match_parent"
                android:text="+/-"
                android:textSize="30sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="60dp">

            <Button
                android:id="@+id/tlacitko7"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="7"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitko8"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="8"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitko9"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="9"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitkoLomeno"
                android:layout_width="76dp"
                android:layout_height="match_parent"
                android:text="/"
                android:textSize="30sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="60dp">

            <Button
                android:id="@+id/tlacitko4"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="4"
                android:textSize="30sp"
                tools:text="4" />

            <Button
                android:id="@+id/tlacitko5"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="5"
                android:textSize="30sp"
                tools:text="5" />

            <Button
                android:id="@+id/tlacitko6"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="6"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitkoKrat"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="*"
                android:textSize="30sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="60dp">

            <Button
                android:id="@+id/tlacitko1"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="1"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitko2"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="2"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitko3"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="3"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitkoMinus"
                android:layout_width="76dp"
                android:layout_height="60dp"
                android:text="-"
                android:textSize="30sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="60dp">

            <Button
                android:id="@+id/tlacitko0"
                android:layout_width="150dp"
                android:layout_height="match_parent"
                android:text="0"
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitkoCarka"
                android:layout_width="76dp"
                android:layout_height="match_parent"
                android:text="."
                android:textSize="30sp" />

            <Button
                android:id="@+id/tlacitkoPlus"
                android:layout_width="76dp"
                android:layout_height="match_parent"
                android:text="+"
                android:textSize="30sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <Button
                android:id="@+id/tlacitkoRovno"
                android:layout_width="300dp"
                android:layout_height="60dp"
                android:text="="
                android:textSize="30sp" />

        </TableRow>
    </LinearLayout>

    <LinearLayout
        android:layout_width="330dp"
        android:layout_height="105dp"
        android:layout_marginEnd="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginStart="16dp"
        android:orientation="vertical"
        android:weightSum="2"

        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        tools:layout_editor_absoluteY="16dp">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="50dp">

            <TextView
                android:id="@+id/cislo1"
                android:layout_width="135dp"
                android:layout_height="match_parent"
                android:text="NaN"
                android:textAlignment="viewEnd" />

            <TextView
                android:id="@+id/znamenko"
                android:layout_width="60dp"
                android:layout_height="match_parent"
                android:text="..."
                android:textAlignment="center" />

            <TextView
                android:id="@+id/cislo2"
                android:layout_width="135dp"
                android:layout_height="match_parent"
                android:text="NaN"
                android:textAlignment="viewStart" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">


            <TextView
                android:id="@+id/obrazovka"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="0"
                android:textSize="30sp"
                android:visibility="visible" />
        </TableRow>

    </LinearLayout>
</android.support.constraint.ConstraintLayout>`

1 个答案:

答案 0 :(得分:0)

问题不在于LinearLayout,而在于ConstraintLayout。请参阅此documentation

  

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

您需要约束ConstraintLayout的孩子。