我也遇到了这个问题。大概您正在使用可绘制的LayerList资源?那就是我在用的。不幸的是,我没有找到修复它的“真正”方法,这似乎是代码中的错误,但是我没有追逐它。但是,从某种意义上来说,我很幸运,因为我已经正确渲染了视图后才设置了“越野车”背景,因此只需要保存并在设置背景后恢复填充值即可,例如:
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);