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>
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.
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"
You can switch to RelativeLayout
. There is no spacing in that Layout.
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.
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>
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.