android - 按钮的填充在没有背景的情况下不起作用

标签 android button padding

今天我遇到了一个非常奇怪的布局问题,我还没有从谷歌找到任何有用的答案。

在我的布局中,我有一个按钮,左边是文本,右边是图标。我希望文本与按钮的边框保持 20dp 的左边距,然后我将 paddingLeft 设置为按钮,但它不起作用。偶然地,我为按钮设置了背景颜色,填充效果很好。任何人都可以帮我解释一下这件事。

布局如下

<Buttonandroid:layout_width="fill_parent"
        android:drawableRight="@drawable/right_arrow"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:layout_height="72dp"
        android:text="Button"
        android:id="@+id/btn"
        android:gravity="center_vertical"
        android:fontFamily="roboto regular"
        android:textColor="#ffffff00"
        style="@android:style/Widget.DeviceDefault.Button.Borderless" />

谢谢大家!

最佳答案

设置 minWidthminHeight 似乎可以使填充和边距在有或没有背景的情况下都能正常工作。

<Button 
    android:minHeight="0dp"
    android:minWidth="0dp" ...

至于为什么背景会对填充的工作方式产生影响...我认为这与 View.java 中的这段代码有关

protected int getSuggestedMinimumWidth() {
    return (mBackground == null) ? mMinWidth : max(mMinWidth, mBackground.getMinimumWidth());
}

protected int getSuggestedMinimumHeight() {
    return (mBackground == null) ? mMinHeight : max(mMinHeight, mBackground.getMinimumHeight());
}

https://stackoverflow.com/a/20323723/4401507

关于android - 按钮的填充在没有背景的情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29690900/

相关文章:

css - 填充表现得像边距

android - 是否可以生成一个 'share on Facebook' 链接以在 Android/iOS/移动设备上打开 native Facebook 应用程序而不是网络共享对话框?

html - 用图像替换按钮标签并与文本字段对齐

c# - Android 的 - performHapticFeedback 与 Vibrator - 文档和使用

swift - 在 SwiftUI 中,如何增加按钮的高度?

javascript - 单击时刷新页面的按钮

html - Bootstrap Column 6 图片问题

C 文本对齐与填充

Android xml 层列表在某些设备上无法正确显示

android - 我可以在没有 Google 帐户的情况下访问 Google Drive 文档吗?