LinearLayout 中的按钮之间相等 space
Equal space between buttons in a LinearLayout
我在 LinearLayout 中垂直排列了四个按钮。
我想要按钮之间的 space 和最顶部按钮与线性布局顶部之间的 space 以及最底部按钮与底部按钮之间的 space布局,要一样。
在附图中,space被描绘成红色的路径。
我希望所有 space 大小相同。
我将如何实现我的目标?
<LinearLayout
p1:orientation="vertical"
p1:layout_width="wrap_content"
p1:layout_height="wrap_content"
p1:id="@+id/mainButtonLayout">
<Button
p1:text="xxx"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/saButton"
p1:textColor="#FFFFFF"
p1:background="@drawable/roundedBlue"
p1:minHeight="33dp"
p1:minWidth="175dp"
p1:layout_marginBottom="20dp" />
<Button
p1:text="xxxx"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/rButton"
p1:textColor="#FFFFFF"
p1:background="@drawable/roundedBlue"
p1:minHeight="33dp"
p1:minWidth="175dp"
p1:layout_marginBottom="20dp" />
<Button
p1:text="xxxxx"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/sButton"
p1:textColor="#FFFFFF"
p1:background="@drawable/roundedBlue"
p1:minHeight="33dp"
p1:minWidth="175dp"
p1:layout_marginBottom="20dp" />
<Button
p1:text="xxxxx"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/pButton"
p1:textColor="#FFFFFF"
p1:background="@drawable/roundedBlue"
p1:minHeight="33dp"
p1:minWidth="175dp" />
</LinearLayout>
要将按钮放在布局的中心:
<LinearLayout
android:orientation="vertical"
android:gravity="center_vertical"
... >
要在按钮之间放置空格,我可以想到两个选项。第一种是在除第一个按钮之外的所有按钮上使用 android:layout_marginTop
。第二个是在 XML 中制作一个可绘制的具有硬编码大小的空形状,并将其用作 LinearLayout
的分隔符
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<size android:width="your_dimension_here"
android:height="your_dimension_here" />
<solid android:color="@android:color/transparent" />
</shape
<LinearLayout
android:divider="@drawable/divider_space"
android:showDividers="middle"
... >
只需将 p1:gravity="center" 添加到您的线性布局中。
<LinearLayout
p1:layout_width="match_parent"
p1:layout_height="match_parent"
p1:orientation="vertical"
p1:gravity="center"
p1:id="@+id/mainButtonLayout">
在 LinearLayout 中使用 weightsum
<LinearLayout
...
android:weightSum="4.0">`
在每个按钮中放置
layout_height = 0dp , layout_weight = 1, top and bottom margin according to your need but same in every button.
<Button....
...
android:layout_height="0dp"
android:layout_weight="1.0"
android:layout_marginBottom="40dp"
android:layout_marginTop="40dp"
/>
了解更多信息:read this document
希望我会尽力完成您的要求。试试这个 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:orientation="vertical"
android:gravity="center" >
<Button
android:id="@+id/btn1"
android:layout_width="50dp"
android:layout_height="50dp"
/>
<View
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1" />
<Button
android:id="@+id/btn2"
android:layout_width="50dp"
android:layout_height="50dp"
/>
<View
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1" />
<Button
android:id="@+id/btnTwitter"
android:layout_width="50dp"
android:layout_height="50dp"
/>
<View
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1" />
<Button
android:id="@+id/btn3"
android:layout_width="50dp"
android:layout_height="50dp"
/>
</LinearLayout>
在你的观点之间使用这个,
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
我在 LinearLayout 中垂直排列了四个按钮。
我想要按钮之间的 space 和最顶部按钮与线性布局顶部之间的 space 以及最底部按钮与底部按钮之间的 space布局,要一样。
在附图中,space被描绘成红色的路径。 我希望所有 space 大小相同。
我将如何实现我的目标?
<LinearLayout
p1:orientation="vertical"
p1:layout_width="wrap_content"
p1:layout_height="wrap_content"
p1:id="@+id/mainButtonLayout">
<Button
p1:text="xxx"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/saButton"
p1:textColor="#FFFFFF"
p1:background="@drawable/roundedBlue"
p1:minHeight="33dp"
p1:minWidth="175dp"
p1:layout_marginBottom="20dp" />
<Button
p1:text="xxxx"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/rButton"
p1:textColor="#FFFFFF"
p1:background="@drawable/roundedBlue"
p1:minHeight="33dp"
p1:minWidth="175dp"
p1:layout_marginBottom="20dp" />
<Button
p1:text="xxxxx"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/sButton"
p1:textColor="#FFFFFF"
p1:background="@drawable/roundedBlue"
p1:minHeight="33dp"
p1:minWidth="175dp"
p1:layout_marginBottom="20dp" />
<Button
p1:text="xxxxx"
p1:layout_width="match_parent"
p1:layout_height="wrap_content"
p1:id="@+id/pButton"
p1:textColor="#FFFFFF"
p1:background="@drawable/roundedBlue"
p1:minHeight="33dp"
p1:minWidth="175dp" />
</LinearLayout>
要将按钮放在布局的中心:
<LinearLayout
android:orientation="vertical"
android:gravity="center_vertical"
... >
要在按钮之间放置空格,我可以想到两个选项。第一种是在除第一个按钮之外的所有按钮上使用 android:layout_marginTop
。第二个是在 XML 中制作一个可绘制的具有硬编码大小的空形状,并将其用作 LinearLayout
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<size android:width="your_dimension_here"
android:height="your_dimension_here" />
<solid android:color="@android:color/transparent" />
</shape
<LinearLayout
android:divider="@drawable/divider_space"
android:showDividers="middle"
... >
只需将 p1:gravity="center" 添加到您的线性布局中。
<LinearLayout
p1:layout_width="match_parent"
p1:layout_height="match_parent"
p1:orientation="vertical"
p1:gravity="center"
p1:id="@+id/mainButtonLayout">
在 LinearLayout 中使用 weightsum
<LinearLayout
...
android:weightSum="4.0">`
在每个按钮中放置 layout_height = 0dp , layout_weight = 1, top and bottom margin according to your need but same in every button.
<Button....
...
android:layout_height="0dp"
android:layout_weight="1.0"
android:layout_marginBottom="40dp"
android:layout_marginTop="40dp"
/>
了解更多信息:read this document
希望我会尽力完成您的要求。试试这个 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:orientation="vertical"
android:gravity="center" >
<Button
android:id="@+id/btn1"
android:layout_width="50dp"
android:layout_height="50dp"
/>
<View
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1" />
<Button
android:id="@+id/btn2"
android:layout_width="50dp"
android:layout_height="50dp"
/>
<View
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1" />
<Button
android:id="@+id/btnTwitter"
android:layout_width="50dp"
android:layout_height="50dp"
/>
<View
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1" />
<Button
android:id="@+id/btn3"
android:layout_width="50dp"
android:layout_height="50dp"
/>
</LinearLayout>
在你的观点之间使用这个,
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />