Skip to content

Commit

Permalink
#222 Remove and recycle view when swiping card
Browse files Browse the repository at this point in the history
  • Loading branch information
yuyakaido committed Mar 28, 2019
1 parent 91c7a00 commit 1a0cc10
Showing 1 changed file with 14 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,20 @@ private void update(RecyclerView.Recycler recycler) {
if (state.status == CardStackState.Status.PrepareSwipeAnimation && (state.targetPosition == RecyclerView.NO_POSITION || state.topPosition < state.targetPosition)) {
if (Math.abs(state.dx) > getWidth() || Math.abs(state.dy) > getHeight()) {
state.next(CardStackState.Status.SwipeAnimating);

// ■ 概要
// Recyclerから古いViewが返却されて、スワイプ済みのカードが表示される
// データソースは正しく更新されていて、あくまで表示だけが古い状態になる
//
// ■ 再現手順
// 1. `removeAndRecycleView(getTopView(), recycler);` をコメントアウトする
// 2. VisibleCount=1に設定し、最後のカードがスワイプされたらページングを行うようにする
// 3. カードを1枚だけ画面に表示する(このカードをAとする)
// 4. Aをスワイプする
// 5. カードを1枚だけ画面に表示する(このカードをBとする)
// 6. ページング完了後はBが表示されるはずが、Aが画面に表示される
removeAndRecycleView(getTopView(), recycler);

state.topPosition++;
final Direction direction = state.getDirection();
new Handler().post(new Runnable() {
Expand Down

0 comments on commit 1a0cc10

Please sign in to comment.