Android - 动画数据绑定视图

时间:2016-06-10 08:24:43

标签: android mvvm data-binding

我在使用数据绑定动画视图时遇到一些问题,而不使用@BindingAdapter注释。我想使用Observable类,所以我每次都可以启动动画。我试过这段代码但对视图没什么影响。

public ObservableField<Animation> animation = 
           new ObservableField<>(AnimationUtils.loadAnimation(context, R.anim.box_bounce));

和xml属性:

android:layoutAnimation="@{viewModel.animation}"

任何人都可以帮助我吗?

1 个答案:

答案 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);

一样开始和停止动画