如何制作相同尺寸的按钮

时间:2016-07-20 17:50:32

标签: android xml android-layout android-studio layout

这是我的xml,这是结果,但是希望上面的3个按钮(一起)占据最大按钮的相同大小,就像那个图像一样,我应该在哪里更改布局?

这就是我所拥有的:

this is the result

这就是我想要的:

but I would like to stay so

我的xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="@android:color/transparent"
              android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="#FFA500"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="10dp"
            android:background="#FFA500"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textoPoup1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="1. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
                android:textColor="@android:color/white"/>

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

                <Button
                    android:id="@+id/nota0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="0"/>

                <Button
                    android:id="@+id/nota40"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="50"/>

                <Button
                    android:id="@+id/nota80"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="90"/>
            </LinearLayout>


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

                <Button
                    android:id="@+id/nota120"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="110"/>

                <Button
                    android:id="@+id/nota160"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="170"/>

                <Button
                    android:id="@+id/nota200"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="300"/>
            </LinearLayout>

            <Button
                android:id="@+id/proxima1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Next"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

3 个答案:

答案 0 :(得分:8)

对于每个按钮,使用layout_weight可以轻松完成此操作:

<Button
        android:id="@+id/nota0"
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="0"/>

这样,每个按钮将占据其父级宽度的1/3,占据整个屏幕宽度。您仍然可以使用边距和填充来根据需要在按钮之间建立间距。

答案 1 :(得分:2)

在带有3个按钮的LinearLayout中添加

android:orientation="horizontal"

现在,对于所有三个按钮设置:

android:layout_width="0dp"
android:layout_weight="1"

这样的事情:

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

            <Button
                android:id="@+id/nota0"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="0"/>

            <Button
                android:id="@+id/nota40"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="50"/>

            <Button
                android:id="@+id/nota80"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="90"/>
        </LinearLayout>

然后你可以添加适当的边距:

对于第一个按钮,只将leftMargin添加为xdp,将rightMargin添加为x / 2dp。 对于第二个按钮,将左右边距添加为xdp。 对于第三个按钮,将左边距添加为x / 2dp,将右边距添加为xdp。

答案 2 :(得分:2)

在linearlayout中,我们可以给出layout_weight属性,该属性用于linearlayout中每个子元素的大小权重,如果layout_width =&#34; 0dp&#34;它将根据重量计算该元素的宽度,或者如果layout_height =&#34; 0dp&#34;它将根据重量计算该元素的高度。

它取总元素的平均权重,即所有元素都有layout_weight =&#34; 1&#34;它会分配它父母宽度的1/3。

所以在你的情况下你需要同样的按钮大小,所以需要为所有元素分配相同的权重和layout_width =&#34; 0dp&#34;

edit