如果我在一个带有选择器drawable的按钮上从Button.getBackground()设置一个Drawable对象,然后在具有相同drawable的另一个按钮上调用set setBackgroundDrawable,则选择器状态不起作用。
示例:
//layout is inflated from XML
//buttonA object ref set from view
//buttonB object ref set from view
drawableA = buttonA.getBackground();
drawableB = buttonB.getBackground();
现在调用buttonA.setBackgroundDrawable(drawableB)
会导致buttonA在不同的选择器状态下无法正确设置动画。
我做错了吗?我尝试调用getConstantState()。newDrawable(getResources())。mutate()来制作类似drawable的副本,以防状态绑定到原始按钮但似乎没有帮助。
答案 0 :(得分:0)
我知道这个问题已经过时了,但我只是遇到了同样的问题 - 所以如果有其他人找到了通往互联网这个黑暗角落的路,那么这就是我的解决方案......
buttonB.setBackground(buttonA.getBackground().getConstantState().newDrawable());
两个视图的状态现在都应该有效。希望这有帮助!