美文网首页
安卓button代码初始化默认内边距问题

安卓button代码初始化默认内边距问题

作者: 迷路的字母C | 来源:发表于2018-11-07 11:03 被阅读212次

一般在xml布局文件中设置一个button,如果出现默认内边距,可以通过以下设置来消除默认的内边距:

android:padding="0dp"
android:minWidth="0dp"
android:minHeight="0dp"

但是今天需要用代码初始化一个button,理论上设置对应的属性就OK了,那么应该是这样的。

Button button = new Button(context);
button.setPadding(0, 0, 0, 0);
button.setMinHeight(0);
button.setMinWidth(0);
结果事实证明,我还是太年轻,设置过之后什么都没有发生。 AE0DCB694DEBE07B264F61A25C954383.png

Debug模式下,对比代码初始化的button和xml初始化的button,发现最小高度属性并没有修改,真是奇怪了!


2D32E80CCC2B11A8CD4A05F8AA04CFBB.png

搜索源码,原来是另一个方法在修改这个属性。于是修改为如下代码:

Button button = new Button(context);
button.setPadding(0, 0, 0, 0);
button.setMinimumHeight(0);
button.setMinimumWidth(0);

然后运行,测试。emmmmmm......


9EBDF232B6AE9FEE4DB1E5BEFD7C2252.jpg
Button button = new Button(context);
button.setPadding(0, 0, 0, 0);
button.setMinimumHeight(0);
button.setMinimumWidth(0);
button.setMinHeight(0);
button.setMinWidth(0);

怎么可能还是不行。

最后只好都加上了,问题也解决了,诡异的逻辑。后来查看了初始化的代码,其实是因为我使用的方法,系统调用了com.android.internal.R.attr.buttonStyle的样式,所以默认添加很多不必要的属性设置。其实初始化的时候,使用另外一个方法,这些凡人的东西都统统不见了。

Button button = new Button(context, null, 0);

相关文章

  • 安卓button代码初始化默认内边距问题

    一般在xml布局文件中设置一个button,如果出现默认内边距,可以通过以下设置来消除默认的内边距: 但是今天需要...

  • 前端(四)

    内边距 内边距指的就是元素内容区与边框以内的空间。 使用padding属性来设置元素的内边距。 默认情况下widt...

  • 乱七八糟的小记

    //安卓按钮代码在线生成 网址:http://angrytools.com/android/button/

  • tableView/scrollView默认内边距问题(cont

    在scrollView/tableView等可互动控件中, 控制器隐藏导航栏后, 可滑动控件默认布局会有一个内边距...

  • iOS给UILabel增加内边距

    UILabel默认不带内边距,调整内边距步骤: 1.制定一个空白区:UIEdgeInsets。 2. 重写draw...

  • Android下 TextInput占位符显示不全

    原因 android 输入框默认带有上下内边距 解决 将Textinput元素样式的垂直内边距设置为0 paddi...

  • 去除TextView默认内边距

    今天遇到一个问题,由于TextView文本框较小,文本框内字体比较大,导致设置字体区中没有达到想要的效果,距下边比...

  • 6-15

    Relative layout 相对于父视图 相对于其他视图 具有相对布局的列表项 内边距和外边距 button点...

  • 安卓碎片代码 计算器代码

    安卓 button事件添加监听器 Button button=(Button)findViewById(R.id....

  • # 边框属性

    # 边框属性 # 内边距 # 外边距 # CSS盒子模型 # box-sizing #清空默认边距 #行高(lin...

网友评论

      本文标题:安卓button代码初始化默认内边距问题

      本文链接:https://www.haomeiwen.com/subject/cnmmxqtx.html