ListViewをベースにした小さなAndroidアプリをやっています。ユーザーがリスト内の1つ以上の要素を選択し、続いてアクションバーからメニュー項目を選択したときに、リスト内の選択された要素に対して小さなアニメーションを実行したいのですが、これで問題が発生します。
何もアニメートしません-また、何も失敗しません。次のコード部分は、私が行っていることの簡略化されたバージョンです。
private void animateListViewItem()
{
TranslateAnimation anim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f);
anim.setDuration(2000);
View v = fragment.getListAdapter().getView(fragment.getListView().getFirstVisiblePosition(), null, null);
v.startAnimation(anim);
}
私がそれをいじって、何が悪いのかを理解しようとしたとき、私はある時点でアイテムをListView全体に置き換えて、問題の原因としてのアニメーションを除外しました-このように。
private void animateListViewItem()
{
TranslateAnimation anim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f,
Animation.RELATIVE_TO_SELF, -1.0f,Animation.RELATIVE_TO_SELF, 0.0f);
anim.setDuration(2000);
fragment.getListView().startAnimation(anim);
}
驚いたことに、それは完璧に機能しました!
だから私の質問は-なぜListViewの個々の要素をアニメーション化できないのですか?それとも私が間違っていることがありますか?
ありがとう!
PSレコードの場合、ListViewにはカスタムビュー(LinearLayouts)が入力されており、アニメーション化する前に正しいアイテムを取得することを確認しました。