ListViewにアニメーションを追加しようとしています。getView()を使用してリストにいくつかのビューを描画しています。すべて正常に動作します。
public View getView(int position, View convertView, ViewGroup parent) { }
ユーザーがリストセルをクリックしたときにアニメーションを追加しようとしています。すべてのリストセルが左にスライドし、新しいデータが同時に右から取得されます。つまり、セルデータが左に移動し、同時に新しいデータが右側から取得されます。
OnItemClickListenerに次のコードを実装しました
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Animation slideOutAnimation=AnimationUtils.loadAnimation(this, R.anim.slide_out);
slideOutAnimation.setDuration(900);
Animation slideInAnimation=AnimationUtils.loadAnimation(this, R.anim.slide_in);
slideInAnimation.setDuration(500);
listView.startAnimation(slideOutAnimation);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
data = newData();
listView.startAnimation(slideInAnimation);
myAdapterClass.notifyDataSetChanged();
}
}, slideOutAnimation.getDuration());
}
};
上記のコードは機能していますが、希望の出力が得られません。アニメーションを変更しているときに空のビューが1つ表示されます。
左スライディングアニメーションの開始---空のビュー----右スライディングアニメーションの開始
空のビュー(しばらくの間空の画面が表示される)が来る理由がわからないので、アニメーションの時間とハンドラーで遊んだことがありますが、運がありません。
その空のビューを削除する方法は?この出力を達成する方法は?
左スライディングアニメーション開始(データ移動)(同時に右からのデータ)右スライディングアニメーション開始