gpt4 book ai didi

android - 带有另一个 View 的背景可绘制选择器的 setBackgroundDrawable 打破了选择器状态

转载 作者:太空狗 更新时间:2023-10-29 15:16:47 26 4
gpt4 key购买 nike

如果我在一个带有选择器可绘制对象的按钮上通过 Button.getBackground() 设置一个 Drawable 对象,然后在另一个具有相同可绘制对象的按钮上调用 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() 来制作类似于可绘制对象的副本,以防状态绑定(bind)到原始按钮,但这似乎没有帮助。

最佳答案

我知道这个问题很老,但我刚刚遇到了同样的问题 - 所以如果其他人找到了进入互联网这个黑暗角落的方式,这是我的解决方案......

buttonB.setBackground(buttonA.getBackground().getConstantState().newDrawable());

两个 View 的状态现在应该可以工作了。希望这对您有所帮助!

关于android - 带有另一个 View 的背景可绘制选择器的 setBackgroundDrawable 打破了选择器状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12041285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com