2017-02-12 280 views
3

道歉的潜在误导性标题,但我不知道如何说出它。如果其他人认为他们可以想出更好的东西,请随时编辑。RecyclerView in setReverseLayout滚动到顶部(或底部)

我有一个RecyclerView,我用Firebase记录填充。为使最新的记录显示在列表顶部,我已将RecvlerView设置为setReverseLayout(true)setStackFromEnd(true),建议here。当物品数量适合屏幕空间时,这种效果很好 - 其余物品平滑地向下滚动,为淡入的新物品留出空间,如下所示。

Good

问题是当现有的项目采取了所有的屏幕空间,新项目是“上面”的人,并将RecyclerView有效地扩展屏幕上方的顶部,所以看我需要手动拉下或滚动列表的新项目。下面是另一个GIF;

Bad

我如何克服这个问题?

+0

你能分享这个例子链接...这是非常有用 –

+0

@GunduBandagar对不起,你想分享什么链接? –

+0

你上面的代码,我想这个老板.. :) –

回答

1

这可能会帮助:

adapter.notifyItemInserted(position); 
recyclerView.scrollToPosition(position); 
2
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); 
} 

这将滚动您,如果你是在最高层,离开一切,因为它是,如果你在中间,从恼人的跳跃节约是什么地方。

相关问题