Android:如何使水平线性布局中的2个按钮之间没有空格

时间:2011-11-12 14:24:22

标签: android button android-linearlayout space

我发现即使我将layout_marginRightlayout_marginLeft设置如下,我也无法删除2个按钮之间的空格。但是如果我将空间设置得更大,例如10 dp,那就更有意义了。 有什么方法可以解决吗?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="horizontal" android:padding="0dp"
    android:layout_height="wrap_content" android:gravity="fill_horizontal" android:layout_margin="0dp">
    <Button android:id="@+id/LocationTitleButton"
                    android:layout_width="wrap_content" 
                    android:layout_height="wrap_content"
                    android:layout_marginRight="0dp"
                    android:layout_gravity="center_vertical" 
                    android:layout_weight="1"
                    android:ellipsize="end" 
                    android:gravity="center_vertical"
                    android:scrollHorizontally="true" 
                    android:singleLine="true"
                    android:text="Add location" 
                    android:textStyle="bold" />
                <Button android:textColor="#FF000000" 
                    android:layout_weight="0" 
                    android:id="@+id/AddLocationButton" 
                    android:text="Search" 
                    android:gravity="center_vertical"
                    android:layout_gravity="center_vertical" 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" 
                    android:layout_marginLeft="0dp" />
</LinearLayout>

6 个答案:

答案 0 :(得分:43)

请查看Bryan's answer。我的回答两个按钮重叠。布莱恩斯的答案显示了按钮的实际大小。

旧答案:

只需将第一个按钮的android:layout_marginRight设置为"-8dip"甚至更多。比两个按钮之间的空间会变小。

答案 1 :(得分:30)

尝试更改按钮的颜色,因为android原生按钮的默认界面实际上小于它的大小,并且它的中心位置使它看起来很酷。

将背景改为黑色或其他东西,你会看到按钮的实际大小。

android:background="#000"

答案 2 :(得分:3)

您可以切换到RelativeLayout。该布局中没有间距。

答案 3 :(得分:1)

您必须设置android:layout_marginRight="0dip"并且必须使用android:paddingRight="0dip"删除填充,而另一个按钮必须将其更改为左侧值。我猜你忘记了每个android元素默认都添加了一个填充。这通常是一个好主意,但如果你想删除它,这就是方法。

答案 4 :(得分:0)

如果您使用TableLayout,我认为您可以摆脱空间。如果边距仍然在它们之间添加一些默认空间,则可以为边距设置负值。

答案 5 :(得分:0)

使用&#34; layout_marginLeft&#34; &安培; &#34; layout_marginRigh&#34;填写背景按钮

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:gravity="bottom"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/imageButton1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="-5dp"
        android:layout_marginLeft="-3dp"
        android:layout_marginRight="-4dp"
        android:layout_weight="1"
        android:drawableTop="@drawable/create_mail" />

    <Button
        android:id="@+id/bItem"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="-5dp"
        android:layout_marginLeft="-4dp"
        android:layout_marginRight="-4dp"
        android:layout_weight="1"
        android:drawableTop="@drawable/email_receive3"
        android:onClick="OnClick"
        android:text="@string/inbox" />


    <Button
        android:id="@+id/imageButton2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="-5dp"
        android:layout_marginLeft="-4dp"
        android:layout_marginRight="-3dp"
        android:layout_weight="1"
        android:drawableTop="@drawable/email_trash" />


</LinearLayout>