Jon*_*ght 5 android android-recyclerview
为可能具有误导性的标题道歉,但我不知道如何措辞。如果其他人认为他们可以想出更好的东西,请随时进行编辑。
我有一个用 Firebase 记录填充的 RecyclerView。为了使最近的记录显示在列表的顶部,我已将我的 RecvlerView 设置为setReverseLayout(true)并setStackFromEnd(true)按照此处的建议。当项目数量适合屏幕空间时,这非常有效 - 其余项目平滑向下滚动,为淡入的新项目提供空间,如下所示。
问题是当现有项目占据所有屏幕空间时,新项目被添加到其他项目的“上方”并且 RecyclerView 有效地扩展到屏幕顶部上方,因此要查看新项目,我需要拉动或滚动手动列出。下面是另一个 GIF;
我怎样才能克服这个问题?
小智 6
final int SCROLLING_UP = -1;
boolean scrollToNewTop = !recyclerView.canScrollVertically(SCROLLING_UP);
//TODO update adapter here
adapter.notifyItemInserted(adapter.getItemCount() - 1);
if (scrollToNewTop) {
recyclerView.scrollToPosition(adapter.getItemCount() - 1);
}
Run Code Online (Sandbox Code Playgroud)
如果您处于最顶端,这将使您向上滚动,并且如果您处于中间位置,则可以保持原样,从而避免烦人的跳跃。
小智 1
这可能有帮助:
adapter.notifyItemInserted(position);
recyclerView.scrollToPosition(position);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2681 次 |
| 最近记录: |