你好:)我对动画矢量有疑问。
我目前正在开发一个应用程序,并且为此创建了一个小库,该库实现了一个简单的浮动操作按钮菜单。您可以查看示例应用here-在实施时使用1.3-RELEASE和CoordinatorLayout版本示例。
这个想法是,当您单击FAB时,它会生成其他FAB,这些FAB会向上浮动。然后,当您与视图交互时(滚动视图或再次单击FAB),它会隐藏生成的FAB。
对于主要的FAB动画,我有两个镜像的动画矢量ic_menu_animated.xml和ic_menu_animated_reverse.xml。一个开始是汉堡包,然后变成“ X”形,另一个则相反。
然后,在实际的实现中,我有一个方法public void toggleButtons(ViewGroup parent, int fabResource)
,该方法在调用时将停止当前drawable的动画,切换资源并启动另一个动画,例如:
Drawable d = getDrawable();
if (d instanceof Animatable){
Animatable anim = (Animatable)d;
if(anim.isRunning()){
anim.stop();
}
}
setImageDrawable(getResources().getDrawable(R.drawable.ic_menu_animated));
if(getDrawable() instanceof Animatable) {
Animatable anim = (Animatable) getDrawable();
anim.start();
}
一切似乎都正常,直到我没有关闭“ FAB菜单”,然后退出活动并再次进入活动几次。然后,按钮在“ X”状态下“卡住”。
此行为在example video上得到了说明。
请帮我解决这个问题。我已经战斗了几天了。