RecyclerView 在项目更改时向上滚动
Posted
技术标签:
【中文标题】RecyclerView 在项目更改时向上滚动【英文标题】:RecyclerView scrolls up when items change 【发布时间】:2022-01-01 12:52:48 【问题描述】:当适配器提交新列表时,屏幕会向上滚动。提交新列表时如何不滚动屏幕?
obs: setHasFixedSize(false)
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:scrollbars="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_
android:layout_
android:background="@color/design_default_color_on_primary">
...
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/matchesRecyclerView"
android:layout_
android:layout_
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button1"
tools:itemCount="5"
tools:listitem="@layout/item_match" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
【问题讨论】:
【参考方案1】:请试试这个
如果您使用ListView
- 覆盖以下方法。
@Override
public int getViewTypeCount()
return getCount();
@Override
public int getItemViewType(int position)
return position;
如果您使用 RecyclerView
- 仅覆盖 getItemViewType()
方法。
@Override
public int getItemViewType(int position)
return position;
【讨论】:
以上是关于RecyclerView 在项目更改时向上滚动的主要内容,如果未能解决你的问题,请参考以下文章
向上滚动recyclerview android时项目正在更新?
向下滚动然后再次向上滚动后,recyclerview 项目之间出现间隙。请看详情