2

Android:animateLayoutChanges="true" 属性を持つ ListView があります。

<ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/listView"
        android:animateLayoutChanges="true"
        android:layout_gravity="center"/>

そして、リストにアイテムを追加および削除するためのアダプターがあり、

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, arrrayListOfStrings);

最後に文字列を追加すると、リストの最後の項目である新しい項目がアニメーション化されます。

arrrayListOfStrings.add("Last item in the list");
adapter.notifyDataSetChanged();

しかし、リストの一番上に新しいアイテムを追加すると、一番上に新しいアイテムが追加されますが、最後のリストアイテムがアニメーション化されます。

arrrayListOfStrings.add(0,"First item in the list");
adapter.notifyDataSetChanged();

それはバグですか、それともここで何か不足していますか?

4

2 に答える 2

2

Android "L" 以降では、ListView (および GridView) を置き換える" RecyclerView " と呼ばれる新しいクラスがあり、アイテムが挿入/削除されるときにアイテムをアニメーション化するより優れた方法を提供します。

これに関するリンクは次のとおりです。 http://antonioleiva.com/recyclerview/

于 2014-08-04T09:52:08.763 に答える