Android:以编程方式覆盖 Button minheight

Posted

技术标签:

【中文标题】Android:以编程方式覆盖 Button minheight【英文标题】:Android : overriding Button minheight programmatically 【发布时间】:2014-12-10 23:42:33 【问题描述】:

搜索如何减少按钮内的填充,我在https://***.com/a/20323723/3888000 中发现我应该在 xml 文件中将按钮的最小高度设置为 0dp。 是的,它对我有用。

问题是:我想以编程方式创建我的按钮,但 setMinimumHeight(1) 和 setMinHeight(1) 都不起作用。 怎么办?

顺便问一下,这两种方法有什么区别?

谢谢!

【问题讨论】:

【参考方案1】:

我认为你应该尝试使用 setPadding(0,0,0,0);而是看看这是否适合你。

就 minHeight 与 minimumHeight 而言,minHeight 是您可以在布局文件中使用的 XML 属性名称。 setMinimumHeight 是相应的 View API 方法来做同样的事情。

【讨论】:

不适合我。我用过.setPadding( 0,0,0,0 ).setMinimumHeight( 0 ); 但没用。顺便说一句,我的按钮在 android.support.v7.widget.GridLayout 内,不确定这是否重要。【参考方案2】:

只是打电话

btn.setMinHeight(0);

btn.setMinimumHeight(0);

对我没用。

当我调用这两种方法时它都起作用了,就像这样:

btn.setMinHeight(0);
btn.setMinimumHeight(0);

查了又查,确实是这样,虽然看起来很奇怪。

按钮是通过编程方式创建的,没有 XML,但它是具有 XML 描述的自定义数字控件的一部分。

编辑:

setMinHeight 由 TextView 定义,而 setMinimumHeight 由 View 定义。根据文档,使用两个值中的较大者,因此必须设置两者。 XML 中的 minHeight 属性对应于 setMinimumHeight 方法。 感谢@David Liu 的澄清。

【讨论】:

你不是唯一一个。我还发现如果不调用 both ,我无法覆盖自定义 AppCompatButton 中的最小高度。 以后遇到这个的人,setMinHeight是TextView定义的,setMinimumHeight是View定义的。根据 API 文档,使用两个值中的较大者,因此必须设置两者。 developer.android.com/reference/android/widget/… 另外,XML中的minHeight属性对应的是setMinimumHeight方法,不是setMinHeight方法,所以要小心。

以上是关于Android:以编程方式覆盖 Button minheight的主要内容,如果未能解决你的问题,请参考以下文章

如何在 android 中以编程方式在小米手机安全应用程序中为我的应用程序启用自动启动选项

在android中以编程方式覆盖文本到语音设置中的“始终使用我的设置”选项

在 Android 中,如何以编程方式在 dp 中设置边距?

android以编程方式获取按钮背景imageName

android - 获取以编程方式创建的视图的估计高度

RippleDrawable - 以编程方式显示波纹效果