LinearLayout的置换元素

时间:2017-05-11 20:15:49

标签: android xml android-layout

我正在使用LinearLayout制作一个简单的计算器。

问题是它看起来像这样:

enter image description here

而不是这样:

enter image description here

我只是希望它看起来像在第二张图片中。我不明白为什么它没有。

拜托,有人可以帮我吗?

Here's带有xml的牧师。

3 个答案:

答案 0 :(得分:1)

您必须将android:baselineAligned="false"应用于所有嵌套LinearLayouts

请参阅增强型布局here

答案 1 :(得分:1)

使用此布局:

在子项按钮中正确使用布局weightSumlayout_weight,使其与所需空间对齐:

    <?xml version="1.0" encoding="utf-8"?>
<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.tsvetan.exercise_4_calculator.MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/clear"
            style="@style/Widget.AppCompat.Button.Colored"
            android:layout_width="50dp"
            android:layout_height="48dp"
            android:layout_marginEnd="11dp"
            android:layout_marginRight="11dp"
            android:onClick="clear"
            android:text="C"
            android:textAlignment="center"
            android:textSize="24sp"
            android:textStyle="bold" />


        <EditText
            android:id="@+id/number"
            android:layout_width="306dp"
            android:layout_height="56dp"
            android:layout_gravity="end"
            android:ems="10"
            android:inputType="numberSigned|numberDecimal"
            android:text="0"
            android:textAlignment="viewEnd"
            android:textSize="30sp" />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:weightSum="5">

        <Button
            android:id="@+id/but7"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="seven"
            android:text="7" />

        <Button
            android:id="@+id/but8"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="eight"
            android:text="8" />

        <Button
            android:id="@+id/but9"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="nine"
            android:text="9" />

        <Button
            android:id="@+id/plus"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1.2"
            android:elevation="0dp"
            android:onClick="onOperatorClick"
            android:padding="0px"
            android:text="+"
            android:textAlignment="center"
            android:textSize="30sp"
            android:textStyle="bold" />

        <Button
            android:id="@+id/multiply"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1.2"
            android:onClick="onOperatorClick"
            android:text="*"
            android:textAlignment="center"
            android:textSize="36sp"
            android:textStyle="bold" />


    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:weightSum="5">

        <Button
            android:id="@+id/but4"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="four"
            android:text="4" />

        <Button
            android:id="@+id/but5"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="five"
            android:text="5" />

        <Button
            android:id="@+id/but6"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="six"
            android:text="6" />

        <Button
            android:id="@+id/minus"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1.2"
            android:onClick="onOperatorClick"
            android:padding="0px"
            android:text="-"
            android:textAlignment="center"
            android:textSize="36sp"
            android:textStyle="bold" />

        <Button
            android:id="@+id/division"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1.2"
            android:onClick="onOperatorClick"
            android:text="/"
            android:textAlignment="center"
            android:textSize="36sp"
            android:textStyle="bold" />


    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:weightSum="5">


        <Button
            android:id="@+id/but1"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="one"
            android:text="1" />

        <Button
            android:id="@+id/but2"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="two"
            android:text="2" />


        <Button
            android:id="@+id/but3"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="three"
            android:text="3" />

        <Button
            android:id="@+id/equals"
            style="@style/Widget.AppCompat.Button.Colored"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="2.4"
            android:onClick="onOperatorClick"
            android:padding="0px"
            android:text="="
            android:textAlignment="center"
            android:textColorLink="@android:color/holo_orange_dark"
            android:textSize="36sp"
            android:textStyle="bold" />

    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:weightSum="5">

        <Button
            android:id="@+id/but0"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1.6"
            android:onClick="zero"
            android:text="0" />


        <Button
            android:id="@+id/butMult"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight=".8"
            android:onClick="point"
            android:text="."
            android:textAlignment="center"
            android:textSize="18sp"
            android:textStyle="bold" />


    </LinearLayout>


</LinearLayout>

<强>输出:

enter image description here

答案 2 :(得分:1)

您不需要将高度放在所有按钮上。只需放置线性布局的高度,其余的将是match_parent。你会得到你想要的东西:

example