Android(安卓)setBackgroundResource()/setBackgroundDrawable() 之后padding失效
16lz
2021-01-26
今天碰到了这么一个奇葩问题,在调用Button的setBackgroundResource()方法之后,Button的高度和宽度被压缩了~原本还以为是被挤压造成的....
调试了一番,终于发现问题,在调用setBackgroundResource()/setBackgroundDrawable() 会导致控件的Padding属性失效,包括paddingLeft,paddingRight,paddingTop,paddingBottom...
解决办法:
先获取控件的padding属性,调用setBackgroundResource()/setBackgroundDrawable() 之后,重新设置进去~~
int top = btnOrderPay.getPaddingTop(); int left = btnOrderPay.getPaddingLeft(); int right = btnBack.getPaddingRight(); int bottom = btnOrderPay.getPaddingBottom(); btnOrderPay.setBackgroundResource(R.drawable.btn_gray_shape); btnOrderPay.setPadding(left, top, right, bottom); // button改变背景之后padding参数会失效,重新设置padding
问题搞定~~
更多相关文章
- Android(安卓)MediaPlayer的生命周期
- Android(安卓)View重绘和更新: invalidate和requestLayout
- Android控件属性——是否可见和可点击
- 安卓控件之单选按钮 (RadioButton和RadioGroup)
- Android架构组件(3)LiveData框架
- Android自定义照相机实现 拍照 录像
- Android:Activity(四):Activity生命周期
- Android(安卓)NDK学习(6)在Android项目中调用已有.so库
- Android下拉刷新上拉载入控件,对全部View通用!