Android线性布局未正确缩放百分比

时间:2017-06-22 22:59:14

标签: android android-layout

我试图创建一个简单的计算器。我所拥有的是一个垂直线性布局,其中包含许多其他水平线性布局。在每个水平布局中,有5个元素。然而,在其中一个中,有4个而不是5个,所以我认为我可以做的是将按钮的比例缩小到另一个的两倍,但让它占据屏幕的40%。但结果并不像我想要的那样。这是我的布局代码:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="5"
            android:orientation="horizontal">

            <Button
                android:id="@+id/negative"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:minHeight="63dp"
                android:minWidth="63dp"
                android:shadowColor="#A8A8A8"
                android:shadowDx="0"
                android:shadowDy="0"
                android:shadowRadius="1"
                android:text="+/-"
                android:textColor="#FFFFFF"
                android:textSize="30sp" />

            <Button
                android:id="@+id/zero"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:minHeight="63dp"
                android:minWidth="63dp"
                android:shadowColor="#A8A8A8"
                android:shadowDx="0"
                android:shadowDy="0"
                android:shadowRadius="3"
                android:text="0"
                android:textColor="#FFFFFF"
                android:textSize="30sp" />

            <Button
                android:id="@+id/dot"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/buttonshape"
                android:minHeight="63dp"
                android:minWidth="63dp"
                android:shadowColor="#A8A8A8"
                android:shadowDx="0"
                android:shadowDy="0"
                android:shadowRadius="3"
                android:text="."
                android:textColor="#FFFFFF"
                android:textSize="30sp" />

            <Button
                android:id="@+id/equals"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="2"
                android:background="@drawable/buttonshape"
                android:minHeight="63dp"
                android:minWidth="63dp"
                android:shadowColor="#A8A8A8"
                android:shadowDx="0"
                android:shadowDy="0"
                android:shadowRadius="3"
                android:text="="
                android:textColor="#FFFFFF"
                android:textSize="30sp" />
        </LinearLayout>

我已经尝试过weightSum,但这也不起作用。 enter image description here

2 个答案:

答案 0 :(得分:2)

为每个按钮设置:

 android:layout_width="0dp"

答案 1 :(得分:1)

使用以下代码:

 <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="5"
                android:orientation="horizontal">

        <Button
            android:id="@+id/negative"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/buttonshape"
            android:minHeight="63dp"
            android:minWidth="63dp"
            android:shadowColor="#A8A8A8"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="1"
            android:text="+/-"
            android:textColor="#FFFFFF"
            android:textSize="30sp" />

        <Button
            android:id="@+id/zero"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/buttonshape"
            android:minHeight="63dp"
            android:minWidth="63dp"
            android:shadowColor="#A8A8A8"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="3"
            android:text="0"
            android:textColor="#FFFFFF"
            android:textSize="30sp" />

        <Button
            android:id="@+id/dot"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/buttonshape"
            android:minHeight="63dp"
            android:minWidth="63dp"
            android:shadowColor="#A8A8A8"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="3"
            android:text="."
            android:textColor="#FFFFFF"
            android:textSize="30sp" />

        <Button
            android:id="@+id/equals"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:background="@drawable/buttonshape"
            android:minHeight="63dp"
            android:minWidth="63dp"
            android:shadowColor="#A8A8A8"
            android:shadowDx="0"
            android:shadowDy="0"
            android:shadowRadius="3"
            android:text="="
            android:textColor="#FFFFFF"
            android:textSize="30sp" />
    </LinearLayout>