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

发布于 2024-12-15 00:40:06 字数 1638 浏览 4 评论 0原文

我刚刚发现即使我设置了 layout_marginRightlayout_marginLeft 如下,我也无法删除两个按钮之间的空间。但如果我将空间设置得更大,例如 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>

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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

演出会有结束 2024-12-22 00:40:06

请查看布莱恩的回答。根据我的回答,两个按钮重叠。布莱恩的回答显示了按钮的实际尺寸。

旧答案:

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

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.

゛时过境迁 2024-12-22 00:40:06

尝试改变按钮的颜色,因为android原生的按钮默认界面实际上比它的尺寸要小,而且它是居中的,看起来很酷。

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

android:background="#000"

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"
-残月青衣踏尘吟 2024-12-22 00:40:06

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

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

明明#如月 2024-12-22 00:40:06

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

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.

千年*琉璃梦 2024-12-22 00:40:06

使用“layout_marginLeft”& “layout_marginRigh”填充背景按钮

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

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>
小嗷兮 2024-12-22 00:40:06

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文