我从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>`
答案 0 :(得分:0)
问题不在于LinearLayout
,而在于ConstraintLayout
。请参阅此documentation。
当您将视图拖放到布局编辑器中时,即使它没有约束,它也会保留在您离开的位置。但是,这只是为了使编辑更容易;如果在设备上运行布局时视图没有约束,则会在位置[0,0](左上角)绘制它。
您需要约束ConstraintLayout
的孩子。