如何设置此布局?

时间:2011-09-22 10:28:37

标签: android android-layout

我将实现Calculator类型的应用程序。 在那里我设置了不同的按钮,如下面的代码:

<RelativeLayout android:id="@+id/linear_layout" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:orientation="vertical"
            android:layout_centerInParent="true" android:gravity="center_horizontal">

            <!-- First row Start -->

                <Button android:id="@+id/sevenNumber" 
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="7" android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:background="@drawable/selector_button"/>

                <Button android:id="@+id/eightNumber" android:layout_toRightOf="@+id/sevenNumber"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="8" android:textColor="#ffffff" android:textSize="22dp"
                    android:background="@drawable/selector_button"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"/>

                <Button android:id="@+id/nineNumber" android:layout_toRightOf="@+id/eightNumber"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="9" android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:background="@drawable/selector_button"/>    

                <Button android:id="@+id/acButton" android:layout_toRightOf="@+id/nineNumber"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="AC" android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:background="@drawable/brown_button"/>

            <!-- First row Finish -->

            <!-- Second row Start -->

                <Button android:id="@+id/fourNumber" android:layout_below="@+id/sevenNumber" 
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="4" android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:background="@drawable/selector_button"/>

                <Button android:id="@+id/fiveNumber" android:layout_toRightOf="@+id/fourNumber" android:layout_below="@+id/eightNumber"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="5" android:textColor="#ffffff" android:textSize="22dp"
                    android:background="@drawable/selector_button"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"/>

                <Button android:id="@+id/sixNumber" android:layout_toRightOf="@+id/fiveNumber" android:layout_below="@+id/nineNumber"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="6" android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:background="@drawable/selector_button"/>    

                <Button android:id="@+id/crearButton" android:layout_toRightOf="@+id/sixNumber" android:layout_below="@+id/acButton"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="C" android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:background="@drawable/brown_button"/>

            <!-- Second row finish -->

            <!-- Third row Start -->


                <Button android:id="@+id/firstNumber" android:layout_below="@+id/fourNumber" 
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="1" android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:background="@drawable/selector_button"/>

                <Button android:id="@+id/secondNumber" android:layout_toRightOf="@+id/firstNumber" android:layout_below="@+id/fiveNumber"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="2" android:textColor="#ffffff" android:textSize="22dp"
                    android:background="@drawable/selector_button"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"/>

                <Button android:id="@+id/threeNumber" android:layout_toRightOf="@+id/secondNumber" android:layout_below="@+id/sixNumber"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="3" android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:background="@drawable/selector_button"/>    



            <!-- Third row finish -->

            <!-- Fourth row Start -->


                <Button android:id="@+id/zeroNumber" android:layout_below="@+id/firstNumber"
                    android:layout_height="wrap_content" android:layout_width="110dp"
                    android:text="0" android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:background="@drawable/selector_button"/>

                <Button android:id="@+id/dotNumber" android:layout_toRightOf="@+id/zeroNumber" android:layout_below="@+id/threeNumber"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:text="." android:textColor="#ffffff" android:textSize="22dp"
                    android:background="@drawable/selector_button"
                    android:layout_marginTop="5dp" android:layout_marginBottom="5dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"/>

                <Button android:id="@+id/doNothing" android:layout_toRightOf="@+id/threeNumber" android:layout_below="@+id/crearButton"
                    android:layout_height="wrap_content" android:layout_width="50dp"
                    android:textColor="#ffffff" android:textSize="22dp"
                    android:layout_marginLeft="5dp" android:layout_marginRight="5dp"
                    android:layout_marginTop="5dp" android:background="@drawable/do_nothing_button" android:layout_alignBottom="@+id/dotNumber"/>

            <!-- Third row finish -->

        </RelativeLayout>

现在,我现在将Linearlayout的第一行设置为android:gravity =“center_horizo​​ntal”,其中包含“7”,“8”,“9”和“AC”按钮等按钮。 但我希望它设置autometicaly以适应设备宽度。 我想我必须使用重量属性。但我在哪里以及如何使用它我不知道所以请帮助我考虑它。 感谢。

3 个答案:

答案 0 :(得分:1)

首先将LinearLayout宽度设置为fill_parent,然后移除gravity,并为每个孩子添加android:layout_weight=1以分享相等的宽度。将每个子项的layout_width参数设置为0dp

答案 1 :(得分:1)

android:layout_centerInParent="true"移除LinearLayoutandroid:layout_width="fill_parent"LinearLayout设置Button 尝试为android:layout_weight="1"设置Button

答案 2 :(得分:1)

也可以在layout标签和按钮标签中使用weightSum属性。在布局标签中将其设置为1并按照您想要设置按钮的方式进行划分,并将此值设置为按钮,就像您希望4个按钮以相等的比例显示然后1/4 = 0.25,将0.25设置为每个按钮标签

参考thisthis