我有一个带有水平项目的RecyclerView
。这些项目有fix、150dp height
和100dp width
。
加载片段时,我将默认项设置为此视图。
在此之后,我发出一个Room getImages()
调用,当结果到达时,我将重新构建这个RecyclerView。
正如您在GIF中看到的那样:
播放按钮卡有固定id实际上("-1"
)和pro有另一个修复("0"
)和每一个图像项目有唯一的id。
新项在第一个项之前添加,用户不会看到它。RecyclerView不会滚动到第一项。当一个新的项目增加到第一位时,是否有任何解决方案将第一项推到正确的位置??
我尝试了smoothScrollToPosition
,但是它在submitList()
之后就不能工作了,也许哪里有更好的解决方案。
发布于 2019-01-29 11:12:12
尝试使用scrollToPosition(0)
代替。
如果这样做不起作用,请尝试添加一个小延迟是否正在修复它,如下所示:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
recyclerView.scrollToPosition(position); // Or maybe `smoothScrollToPosition()`
}
}, 300); // Try a delay of 200 or 300 ms
发布于 2019-02-01 00:25:09
你所要做的就是使用回收视图的光滑滚动器
smoothScroller = new LinearSmoothScroller(this) {
@Override
protected int getHorizontalSnapPreference() {
return LinearSmoothScroller.SNAP_TO_ANY;
}
};
然后当你想滚动到回收视图的第一个位置时
smoothScroller.setTargetPosition(0);
horizontalLayoutManagaer.startSmoothScroll(smoothScroller);
https://stackoverflow.com/questions/54332324
复制