Radon5K
Radon5K

Reputation: 47

Android Linear Layout not scaling percentages properly

I'm trying to create a simple calculator. What I have is a vertical linear layout that contains bunch of other horizontal linear layouts. In each horizontal layout, there are 5 elements. However, in one of them, there is 4 instead of 5, so what I thought I could do is scale of the buttons to twice the size of the other but having it occupy 40% of the screen. But the results are not as I want them. Here is my layout code:

<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>

I have tried the weightSum, but that is not working either. enter image description here

Upvotes: 0

Views: 78

Answers (2)

Asif Patel
Asif Patel

Reputation: 1764

Use below Code:

 <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>

Upvotes: 1

from56
from56

Reputation: 4127

Set for each button :

 android:layout_width="0dp"

Upvotes: 2

Related Questions