ListViewから要素を削除する時にアニメーションさせてみました。
※RecyclerViewじゃないです。すません。
やり方
AdapterのgetViewでアニメーションさせたいViewにAnimationをセットしてあげる。
public class SampleListAdapter extends ArrayAdapter<String> { ...省略 @Override public View getView(final int position, View convertView, ViewGroup parent) { ...省略 /* ボタンが押されたらアニメーションをスタート。アニメーション終了時に要素を削除する。 */ holder.mBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Animation anime = AnimationUtils.loadAnimation(getContext(), R.anim.list_item_drop); anime.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { remove(getItem(position)); notifyDataSetChanged(); } @Override public void onAnimationRepeat(Animation animation) { } }); view.startAnimation(anime); } }); return view; } }
34行目から56行目がアニメーション追加の部分です。
サンプルコードはこちら
https://github.com/workpiles/ListViewAnimationSample
あとがき
ListViewの見た目をもうちょっといい感じにしたいと思って、アニメーションの追加をいろいろと試しています。
アニメーションさせるコードの追加は簡単なのですが、『いい感じ』のアニメーションにするのはやっぱり難しいですね。
RecyclerView使うと簡単に追加/削除のアニメーションできそうですが、まだ試してないので・・・そのうちやってみます。