我也遇到了这个问题。大概您正在使用可绘制的 LayerList 资源?这就是我正在使用的。不幸的是,我没有找到修复它的“真正”方法,这似乎是代码中的一个错误,但我没有追究它。但是,我很幸运,因为在我的视图已经正确渲染之后我设置了“buggy”背景,所以这只是在设置背景后保存然后恢复填充值的问题,例如:
if(condition) {
int bottom = theView.getPaddingBottom();
int top = theView.getPaddingTop();
int right = theView.getPaddingRight();
int left = theView.getPaddingLeft();
theView.setBackgroundResource(R.drawable.entry_bg_with_image);
theView.setPadding(left, top, right, bottom);
}
编辑:作为替代方案,您不必使用以前的填充值,也可以使用尺寸值:
int pad = resources.getDimensionPixelSize(R.dimen.linear_layout_padding);
theView.setBackgroundResource(R.drawable.entry_bg_with_image);
theView.setPadding(pad, pad, pad, pad);