2015-08-26 74 views
0

我在LinearLayout中有四個垂直排列的按鈕。LinearLayout中按鈕之間的空間相等

buttons

我想要的按鈕和最上面的按鈕和線性佈局的頂部和底部最按鈕和佈局的底部之間的空間之間的空間之間的空間,是相同的。

在附圖中,空格顯示爲紅色路徑。 我希望所有的空間都是相同的大小。

我該如何去追求我的目標?

<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> 

回答

3

使用weightsum把 layout_height = 0dp,layout_weight = 1,上下頁邊距根據您的需要,但在每一個按鈕一樣。

<Button.... 
... 
android:layout_height="0dp" 
android:layout_weight="1.0" 
android:layout_marginBottom="40dp" 
android:layout_marginTop="40dp" 
/> 

更多信息:read this document

+0

同意....................試試這個 –

0

要放置按鈕的佈局的中心:

<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" 
    ... > 
+0

你的解決方案是獨立的解決方案嗎? –

+0

@Pétur它是如果您使用dp單位指定的尺寸,無論您喜歡哪種方法的按鈕之間的間距。 – Karakuri

-1

只需添加P1:比重=「中心」到你的線性佈局。在你的LinearLayout

<LinearLayout 
... 
android:weightSum="4.0">` 

在每一個按鈕

<LinearLayout 
p1:layout_width="match_parent" 
p1:layout_height="match_parent" 
p1:orientation="vertical" 
p1:gravity="center" 
p1:id="@+id/mainButtonLayout"> 
+0

這不起作用,它將按鈕向左和向右延伸,但垂直空間保持不變。 –

0

希望我會盡力完成requriement。試試這個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> 
相關問題