2013-02-22 69 views
8

我有按鈕,因爲我想在所有按鈕之間放置相同的空間,所以如果我在平板電腦上運行應用程序按鈕之間的空間將等於鴻溝,我使用linearlayout,我知道有layout_weight選項但我不想舒展圖標在linearlayout中的按鈕之間做相同的空間

例如enter image description here

我的XML代碼如下

<LinearLayout 
     android:id="@+id/shareLinearLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/btnRequestAPrescriptionRefill" 
     android:layout_marginTop="10dp" > 

     <Button 
      android:id="@+id/btnFacebook" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_facebook" /> 

     <Button 
      android:id="@+id/btnYoutube" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_youtube" /> 

     <Button 
      android:id="@+id/btnTwitter" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_twitter" /> 

     <Button 
      android:id="@+id/btnPintrest" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_pintrest" /> 
    </LinearLayout> 

回答

26

您可以使用layout_weight包裹每個按鈕。但就像你說的Buttons will be stretched,所以,而不是在按鈕上使用重量,使用空格(視圖)。

<Button 
     android:id="@+id/btnFacebook" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_facebook" /> 

    <View 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_weight="1" /> 

    <Button 
     android:id="@+id/btnYoutube" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_youtube" /> 

    <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" 
     android:background="@drawable/btn_twitter" /> 

    <View 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_weight="1" /> 

    <Button 
     android:id="@+id/btnPintrest" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_pintrest" /> 
</LinearLayout> 
+0

最後你的答案是合適的:) – 2013-02-22 10:14:24

+0

非常感謝你Archie.bpgc – 2013-02-22 10:15:49

+1

很好的答案。小的改進:使用<空格 的android:layout_width = 「0dp」 機器人:layout_height = 「1DP」 機器人:layout_weight = 「1」> 代替,使你的目標在你的XML更清晰。 – PeteH 2014-09-02 14:51:28

3

layout_weightButton 1,它將把所有的空間

+0

但圖標會舒展! – 2013-02-22 09:28:50

4

嘗試......

<Button 
     android:id="@+id/btnFacebook" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_facebook" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="3" /> 

    <Button 
     android:id="@+id/btnYoutube" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_youtube" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="3" /> 

    <Button 
     android:id="@+id/btnTwitter" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_twitter" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="3"/> 

    <Button 
     android:id="@+id/btnPintrest" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_pintrest" /> 
+0

沒有deepzz我試過你的代碼,但它會看起來一樣layout_weight =「1」 – 2013-02-22 09:33:42

+0

@SiddhpuraAmit:嘗試給寬度0dp而不是wrap_content這些佈局 – Deepzz 2013-02-22 09:38:55

3

我會去用表格佈局,並有strechColums = 「0」。否則,如果你想堅持線性佈局,那麼你有沒有試過space

+0

你可以給我一點代碼 – 2013-02-22 09:30:54

+0

你好Chris我可以建議strechColumns如何我能做到嗎 – 2013-02-22 09:46:58

4

更換

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:gravity="center" 
    > 
    <Button 
     android:id="@+id/btnFacebook" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_facebook" /> 
</RelativeLayout> 

即每個按鈕與RelativeLayoutandroid:layout_weightandroid:gravity

5

爲了讓您更清晰的意圖在你的XML使用<Space>代替<View>如下:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:background="@color/Blue" 
     android:orientation="horizontal" > 

     <Space 
      android:layout_width="0dp" 
      android:layout_height="1dp" 
      android:layout_weight="1" > 
     </Space> 

     <Button 
      android:id="@+id/btnFacebook" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_facebook" /> 

     <Space 
      android:layout_width="0dp" 
      android:layout_height="1dp" 
      android:layout_weight="1" > 
     </Space> 

...and repeat with the rest of your buttons... 

</LinearLayout> 
相關問題