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

问题描述 投票:17回答:6

我发现即使我将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>
android button android-linearlayout space
6个回答
44
投票

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

Old answer:

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


30
投票

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

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

android:background="#000"

3
投票

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


1
投票

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


0
投票

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


0
投票

使用“layout_marginLeft”和“layout_marginRight”填充背景按钮

<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>
© www.soinside.com 2019 - 2024. All rights reserved.