Android: how to make it no space between 2 button

2020-03-01 05:05发布

问题:

I just found I cannot remove the space between 2 buttons even if I set the layout_marginRight and layout_marginLeft as below. But it make sense if I set the space larger such as 10 dp. Any way to solve it?

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

回答1:

Please look at Bryan's answer. With my answer both buttons overlap. Bryans answer shows the real size of the buttons.

Old answer:

Just set the android:layout_marginRight of the first button to "-8dip" or even more. Than the space between the two buttons will get smaller.



回答2:

Try changing the color of the button, because the default interface of the button which is native to android is actually smaller than it's size, and it's center-fitted to make it look cool.

Change it's background to black or something and you'll see the real size of the button.

android:background="#000"


回答3:

You can switch to RelativeLayout. There is no spacing in that Layout.



回答4:

You will have to set android:layout_marginRight="0dip" and you will have to remove the padding with android:paddingRight="0dip" for the other button this has to be changed to the left values. I guess you forgot that every android element has generally a padding added to it by default. This is generally a good idea, but if you want to remove it, this is the way.



回答5:

Use "layout_marginLeft" & "layout_marginRigh" to fill background button

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


回答6:

I think you can get rid of the space if you use TableLayout instead. And you can set negative values for the margin, if it's still adding some default space between them.