如何创建三个均匀间隔的按钮

时间:2013-09-10 04:27:42

标签: android android-layout

我是Android开发的新手,我只是想知道如何在屏幕底部创建三个均匀间隔的按钮。我也想知道我可以使用什么样的风格来使这些按钮显得整洁。

到目前为止我写的代码。

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        <LinearLayout 
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:orientation="vertical">

            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="@string/Fragment1"
                android:id="@+id/worldTextView" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
        <Button
            android:id="@+id/Button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/Button1"
           />

            <Button
                android:id="@+id/Button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/Button2"

                 />

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

7 个答案:

答案 0 :(得分:1)

将三个按钮保持在底部的不同布局(水平方向为线性布局),并为每个按钮和layout_width赋予权重为零。

答案 1 :(得分:1)

使用相对布局..渲染xml布局文件时,太多线性布局会导致负担过重。

答案 2 :(得分:1)

要均匀分隔按钮,您可以将每个按钮android:layout_width设置为0,将android:layout_weight设置为1,以使每个按钮的宽度相同。

<LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="horizontal">
    <Button
        android:id="@+id/Button1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@string/Button1"
        android:layout_weight="1"/>
    <Button
        android:id="@+id/Button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@string/Button2" 
        android:layout_weight="1"/>
    <Button
        android:id="@+id/Button3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@string/Button3"
        android:layout_weight="1"/>
</LinearLayout>

您的线性布局还需要一个非零的layout_width,并且不依赖于其子项(例如wrap_content)。我在此示例中使用了fill_parent,但您也可以使用match_parent或硬编码值,例如55dp

This tutorial是使用android:layout_weight的深入指南。

答案 3 :(得分:0)

你应该对所有三个按钮使用android:layout_weight

 <Button
   android:id="@+id/Button1"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="@string/Button1"
   android:layout_weight="1"/>

答案 4 :(得分:0)

试试这种方式

<LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
        <Button
            android:id="@+id/Button1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="@string/Button1"
            android:layout_weight="1"
           />

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

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

答案 5 :(得分:0)

为LinearLayout指定 weightSum 属性,并为其子指定 layout_weight 属性,如下面的代码所示。

然后给出父级和子级match_parent的高度和宽度,这将允许您的布局根据屏幕分辨率和父级布局高度和宽度调整高度和宽度。

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:weightSum = "3">
    <Button
        android:id="@+id/Button1"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/Button1"
       />

        <Button
            android:layout_weight="1"
            android:id="@+id/Button2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="@string/Button2"

             />

        <Button
         android:layout_weight="1"
         android:id="@+id/Button3"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:text="@string/Button3"
        />

答案 6 :(得分:0)

使用android:layout_width="0dp"和                 android:layout_weight="1"并制作线性布局的宽度android:layout_width="match_parent"

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent" // wrap_content to match_parent
        android:layout_height="fill_parent"
        android:orientation="vertical" >

    <LinearLayout 
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:orientation="vertical">

            <TextView 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Fragment1"
                android:id="@+id/worldTextView" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent" // wrap_content t0 match_parent
            android:layout_height="wrap_content"
            android:orientation="horizontal">
        <Button
            android:id="@+id/Button1"
            android:layout_width="0dp" 
            android:layout_weight="1"  // specify the layout weight
            android:layout_height="wrap_content"
            android:text="@string/Button1"
           />

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

                 />

            <Button
             android:id="@+id/Button3"
              android:layout_weight="1"
             android:layout_width="0dp"
             android:layout_height="wrap_content"
             android:text="@string/Button3"
            />
   </LinearLayout>
   </LinearLayout>
快照

enter image description here

编辑:

您还可以使用相对布局。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent" 
            android:layout_height="fill_parent"
             >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Fragment1" />

    <LinearLayout
                android:layout_width="match_parent" 
                android:layout_height="wrap_content"
                 android:layout_alignParentBottom="true"
                android:orientation="horizontal">
            <Button
                android:id="@+id/Button1"
                android:layout_width="0dp" 
                android:layout_weight="1"  
                android:layout_height="wrap_content"
                android:text="Button1"
               />

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

                     />

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


       </RelativeLayout>