Android - 动画视图的数据绑定
问题描述:
我有一些问题可以在不使用@BindingAdapter注释的情况下使用数据绑定进行动画视图。我想使用Observable类,所以我可以每次都开始动画。我试过这段代码,但对视图没有影响。Android - 动画视图的数据绑定
public ObservableField<Animation> animation =
new ObservableField<>(AnimationUtils.loadAnimation(context, R.anim.box_bounce));
和XML属性:
android:layoutAnimation="@{viewModel.animation}"
任何人都可以帮我吗?
答
最后,我找到了解决这个问题的办法。 我不能使用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);
你可以只通过该R.anim.xxx标识符添加到动画自定义绑定并期望int作为参数。 –