【问题标题】:Remove space between buttons删除按钮之间的空间
【发布时间】:2010-12-05 21:27:02
【问题描述】:

我在线性布局中有一堆按钮。但是有空格按钮。我将填充设置为 0 但没有变化。 有人在http://www.mail-archive.com/android-developers@googlegroups.com/msg51104.html 已经遇到过同样的问题,但那里没有答案。 你能帮帮我吗?

【问题讨论】:

    标签: java android


    【解决方案1】:

    尝试使用android:layout_margin 属性。例如,要减少左侧/右侧的空间(假设您有一组水平按钮),您可以这样做:

    <Button
        android:layout_marginLeft="-3dip"
        android:layout_marginRight="-3dip"
        ... />
    

    【讨论】:

    • 在某些布局上也适用于填充!
    • 很遗憾,这是最好的答案,并不是说它不起作用,而是“猜测和检查”机制似乎从来都不是正确/最有效的方法。该解决方案是否保证可移植? (即在一个显示器上工作的"-Xdip" 是否适用于所有显示器?)
    • @Mike 是的,你说得对,这实际上是一个快速的解决方法。最好的方法是创建一个可绘制的自定义按钮,您可以在其中控制边框宽度。另一方面,只要我们在布局中只使用 dips,它应该在不同的屏幕上都能很好地工作。如果这用于原生Android按钮,那么Android将来肯定会改变按钮边框,因此必须调整“-Xdip”值。另一方面,这就是 targetSdk in AndroidManifest.xml 的用途 - 以保证未来操作系统上的预期行为。
    【解决方案2】:

    我会把你推荐给我给你的previous answer

    如果您的意思是希望它们被逐个像素地推到边缘,您需要使用自己的 9-patch 作为按钮背景,因为 Android 中的默认值周围有一些额外的像素其 9-patch 背景的边界。有关这方面的示例,请查看 SDK 文件夹中的文件:

    platforms/android-8/data/res/drawable-hdpi/btn_default_transparent_normal.9.png

    例如,这是我得到的默认值:

    还有我之前制作的自定义 9 补丁:

    【讨论】:

    • 谢谢。我为按钮添加了背景颜色,然后空格就消失了。这对我真的很有帮助。