RecyclerView.Adapterで次のコードを使用してアイテムを削除します。現在のスクロール位置が一番上にあれば、すべて正常に動作します。RecylcerViewが削除されたアイテムの上にスクロール
スクロール位置がリストの中央にある場合、リストは自動的にビューのトップにスクロールします。
この現象を回避するにはどうすればよいですか?あなたは yourRecylerView.scrollToPosition(position);
を使用してリサイクルビューの
public class MyAdapter extends RecyclerView.Adapter {
...
public void removeItem(int pos){
mDataset.remove(pos); //List with Items
notifyItemRemoved(pos);
notifyItemRangeChanged(pos,mDataset.size());
}
}
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/my_recycler_view"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
...
</FrameLayout>
'notifyItemRangeChanged(POS、mDataset.size())の背後にあるresonsどのようなものがあり;'?それはあなたのような縫い目は1つの項目を削除しているだけです – Selvin
これらの2行は十分以上です mDataset.remove(pos); //アイテムを含むリスト notifyItemRemoved(pos); –
は、 'notifyItemRemoved(pos)'のみを使用して試しました。同じBeviour – Marcel