我是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>
答案 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>
快照
编辑:
您还可以使用相对布局。
<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>