グリッドに動的に追加または削除できるレイアウトのGridViewがあります。Android:GridViewコンテンツの変更をアニメーション化する
GridViewアイテムのネイティブ動作は、グリッド内の他のアイテムが削除されたアイテムの場所にスライドするか、スライドして新しいアイテムが追加されたときに空きができるようにすることです。
しかし、Androidでは、変更が画面上に瞬時に反映されます。私は、GridViewのアダプターでいくつかのトリックを使用して、各getViewメソッド()の呼び出しにカスタムアニメーションを追加しようとしたが、それはここに見られるいくつかの問題を引き起こしてしまった:
Android GridView loading the 0 indexed item in a later index's slot when data set changes
私は個々のビューが代わりにアニメーションを制御持ってみましたアダプターのgetView()メソッドが終了しましたが、最終結果は同じでした。
私はまた、このように、GridLayoutAnimationControllerを使用してみました:
Animation animation = AnimationUtils.loadAnimation(mActivity, R.anim.grid_item_fadein);
GridLayoutAnimationController controller = new GridLayoutAnimationController(animation, .2f, .2f);
mGrid.setLayoutAnimation(controller);
これは、すべてのGridViewのコンテンツの初期負荷で動作しますが、それは、デフォルトではないようにそのコンテンツへの変更だけで、瞬時でポップ。
これはかなりシンプルな機能だと思うし、もっと簡単な方法があるはずです。私がオンラインで検索した中で最高ののは、グリッド内の場所を入れ替えるGridViewアイテムをアニメーション化するa libraryですが、これは私が探しているものではありません(同じライブラリで、削除によってグリッドからアイテムを削除すると私が避けようとしているのと同じインスタントエフェクトが発生します)。
私も見てきた共通の答えは、「APIDemosを見てください、たくさんの例があります。しかし、わかっている限り、実際にはGridViewコンテンツのアニメーション化の例はありません。
ご協力いただきありがとうございます。
追加するアニメーションのタイプは何ですか? xmlプロパティー "animateLayoutChanges = true"を追加すると、ほぼすべてのビューに基本的な流体アニメーションが提供されます。 – klmprt
これは私が試した最初のものであり、残念なことに動作しません。 – JMRboosties
5月、私はこのアニメーションを停止する方法を知っています。 –