我在使用数据绑定动画视图时遇到一些问题,而不使用@BindingAdapter注释。我想使用Observable类,所以我每次都可以启动动画。我试过这段代码但对视图没什么影响。
public ObservableField<Animation> animation =
new ObservableField<>(AnimationUtils.loadAnimation(context, R.anim.box_bounce));
和xml属性:
android:layoutAnimation="@{viewModel.animation}"
任何人都可以帮助我吗?
答案 0 :(得分:1)
最后,我找到了解决这个问题的方法。 我不能将Observable类用于动画,但我可以使用Observable类作为布尔值。我只是设置true或false来启动和停止动画,但我必须使用@BindingAdapter注释。
XML属性:
<data>
<variable
name="viewModel"
type="com.example.MainViewModel" />
</data>
<ImageView
...
animation="@{viewModel.isAnimation}"
... />
查看模型类:
public ObservableBoolean isAnimation=new ObservableBoolean(false);
@BindingAdapter("animation")
public static void setAnimation(ImageButton view, boolean isAnimation) {
if (isAnimation) {
Animation animation = AnimationUtils.loadAnimation(view.getContext(), R.anim.box_bounce);
animation.setRepeatMode(Animation.INFINITE);
view.startAnimation(animation);
}
}
我就像这个isAnimation.set(true);
和isAnimation.set(true);