2016-06-10 113 views
0

我有一些問題可以在不使用@BindingAdapter註釋的情況下使用數據綁定進行動畫視圖。我想使用Observable類,所以我可以每次都開始動畫。我試過這段代碼,但對視圖沒有影響。Android - 動畫視圖的數據綁定

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

和XML屬性:

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

任何人都可以幫我嗎?

回答

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

+0

你可以只通過該R.anim.xxx標識符添加到動畫自定義綁定並期望int作爲參數。 –