一般在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);

android 按钮边距,安卓button代码初始化默认内边距问题相关推荐

  1. android多个按钮美化,Android按钮美化样式的实现代码

    话不多说,上运行效果图 在drawable文件夹下 新建button_drawable.xml android:shape="rectangle"> android:bott ...

  2. TextView 去除默认内边距

    背景:产品姐姐需要吧¥符号和123456785价格等text内容的内边距去掉. NumberTextView代码: package com.devleo.text.demo;import androi ...

  3. html给页面整体添加左右边距_DIV CSS padding内补白(内边距)left right top bottom案例教程...

    DIV CSS padding内补白(内边距)left right top bottom语法应用案例教程 Padding是比较常用CSS样式,可以利用padding内边距设置上.下.左.右对象内容与四 ...

  4. html 圆形的按钮,圆形按钮HTML5/CSS3 button代码

    HTML5/CSS3 3D立体功能按钮在线演示 .screen-reader-text { position: absolute; top: -9999px; left: -9999px; } @fo ...

  5. html字数不同相同宽度的按钮,HTML_按钮在IE中两边被拉伸的 BUG,大家在写按钮(input、button) - phpStudy...

    按钮在IE中两边被拉伸的 BUG 大家在写按钮(input.button)的时候会发现在 IE 下: 随着字数的增多,两边的间距也会越来越大. 在 WIN 的XP 风格下,当字数很多时,两边还会出现严 ...

  6. 【CSS】盒子模型内边距 ① ( 内边距概念 | 内边距设置语法 | 内边距设置效果 | 代码示例 )

    文章目录 一.内边距 1.概念 2.内边距设置语法 3.内边距设置效果 二.内边距代码示例 1.不设置边距的示例 2.设置边距的示例 一.内边距 1.概念 内边距 是 盒子 的 边框 与 内容 之间的 ...

  7. 026_CSS内边距

    1. 元素的内边距在边框和内容区之间.控制该区域最简单的属性是padding属性. 2. CSS内边距属性 3. 所有内边距都不允许使用负值. 4. 上内边距 4.1. padding-top属性设置 ...

  8. html怎么设置左侧内边距,CSS 内边距(Padding)

    CSS 内边距(Padding) CSS 内边距(Padding)属性定义元素边框与元素内容之间的空间.有时候也称CSS 内边距(Padding)为 填充(Padding). 内边距(Padding) ...

  9. 七天学会h5和css3之盒子模型内边距和外边距(27)

    先来练习一个题目:做一个新浪体育文本页面.,可能你现在并不能很好的做出这个效果,但是学习了本节后,你将很快的做出这个页面,具体代码和效果如下: <!DOCTYPE html PUBLIC &qu ...

  10. html盒子左右边框边距,CSS盒子模型、内外边距、边框、行高、背景

    1.盒子模型 所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器.每个矩形都由元素的内容.内边距(padding).边框(border)和外边距(margin)组成. ...

最新文章

  1. 艾伟_转载:学习 ASP.NET MVC (第五回)理论篇
  2. 睡觉觉睡觉睡觉计算机手机,孩子爱睡觉怎么回事
  3. @清晰掉 GNU C __attribute__
  4. 什么是OpenCL?面向FPGA的OpenCL有何优点?
  5. 分叉并加入Java 7 – JSR 166并发实用程序
  6. pytorch基础一:张量
  7. 新手学习嵌入式需要掌握的几点知识点
  8. 加密芯片——摘要算法特点与应用注意事项
  9. addu指令_大金哥的超标量处理器学习笔记之5——指令集体系
  10. (剑指Offer)面试题58:二叉树的下一个结点
  11. 2018 Multi-University Training Contest 7 - GuGuFishtion
  12. 收到“【有奖话题】虚拟空间“筑梦师”,谈谈微软虚拟化 ”礼物一个
  13. 怎么删除fiddler注册表_Fiddler|Fiddler安装与配置
  14. 计算机ppt制作培训心得,计算机培训心得
  15. 网课答案搜题API接口使用
  16. Qt对象间的父子关系
  17. 2011浙江省公务员考试申论大作文的写作
  18. Python爬取的数据存为json文件,并读取
  19. 【排序算法】冒泡排序|选择排序|插入排序|希尔排序
  20. python处理excel表格中合并的行

热门文章

  1. ajax异步提示对号,jQuery Ajax显示对号和错号用于验证输入验证码是否正确
  2. Status code :200 OK (from disk cache)
  3. 【问题解决】Ubuntu无法进入图形页面,全屏出现OK,而且屏幕不停闪烁
  4. 今日头条小程序开发功能
  5. 列举1000以内的水仙花数,并求出水仙花数的个数
  6. 判断邮箱正确的c语言代码,如何用c语言来识别电子邮箱是否正确
  7. scala reduce和Fold
  8. 阿里云个人申请短信验证码申请总是失败
  9. HITWH-PYTHON学习笔记(2)-20170706
  10. MATLAB中使用plotyy绘制双纵坐标图及坐标轴设置