2013-02-22 68 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> 
相关问题