ListViewのセルがアニメーションしながら消える様になった〜!
private class ViewHolder { public boolean needInflate; public TextView text; }
なんて感じで、View に ViewHolder をくっ付けてそこに再度 inflate が必要かどうかのフラグを持たせた。
View を再使用する際に needInflate が true なら、その潰れた View は使わずに新しく view を作っちゃう!(無駄遣い!)
これでなんとか思い通りの動作をするようにはなった〜。
しかし、このままだと潰れた View がキャッシュ?に残ってて何度も再使用されそうになる。
セルを消せば消すほど潰れた View が増えるので、どんどん無駄なキャッシュが増えていくことになるんだけど…。
要らないキャッシュを消すか、キャッシュにある潰れた View の height と内容を元に戻して表示できるようにする方法を探さないとダメだな〜。
というわけで、サンプルのコードは GitHub に置いておいたので、興味のある方はどうぞ。
もっと良い感じにアニメーションする方法とかあったら教えてもらえると嬉しいです!