GridManagerLayout
でRecyclerView
を作成しました。Recyclerビューはカテゴリ別に商品を並べ替えます
簡単にするため、私のカードは2次元、IDと希少性があります。自分のIDか希少性のいずれかによってグリッドにカードを配置するボタンを持っていたいと思います。カードを新しい位置に動かすことができるように、私はこれをやっていかなければならないのでしょうか?
ボタンを押したときに新しいArrayList
を作成してから、notifydDatasetChanged()
を作成しようとしました。アイテムの位置がうまく切り替わりますが、アニメーションがありません。すなわち、新しい位置効果に「移動」するのではなく、カードが再投入されただけです。現在のリストを変更する代わりに新しいArrayList
を定義しているので、これが当てはまると思います。
これを行うには、Collections.swap
を使用する必要があることを示す別の記事を読んでいます。これが私が追求すべきものなのかどうかは分かりません。
任意のアドバイスはありますか?
私はこれを試していませんが、これを見ているだけで前の配列の上に追加していますか?これは私の元のリストの項目を複製しませんでしたか? –
@ImranHamidはい、確かに!しかし、新しいリストを追加する前に元のものをクリアすることができます。私はあなたのアニメーションの問題を解決しようとしていました。 –
助けてくれてありがとう!私は 'notifyItemMoved()'を使うと、 'Collections.swap'を使うときの位置移動のアニメーションを処理することに気付きました。 –