android – RecylcerView滚动到Top on Item Removed

我在RecyclerView.Adapter中使用以下代码删除一个Item.如果当前滚动位置位于顶部,则一切正常.

如果滚动位置位于列表中间的某个位置,则列表会自动滚动到视图的顶部.

如何避免这种行为?

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>

最佳答案 添加以下行为我解决了它

recyclerView.setHasFixedSize(true);
点赞