我知道我们可以使用方法notifyDataSetChanged()将新元素添加到recyclerview并更新视图,但是我需要平滑过渡。

当我尝试使用带有LinearInterpolator的Transition时,可以达到这种效果,但是滚动会自动跳到更新列表的最后一个位置,因此需要避免这种情况。

moreButtonClicked(){
                viewMore.setVisibility(View.GONE);
                rcAdapter.moreClicked = true;
                rcAdapter.notifyDataSetChanged();
                Transition changeBounds = new ChangeBounds();
                changeBounds.setDuration(3000);
                changeBounds.setInterpolator(new LinearInterpolator() );
                TransitionManager.beginDelayedTransition(myCityList,changeBounds);
}


此代码使其自动滚动到recyclerview的最后一项。关于此问题的另一件事是它仅在某些时候发生。我需要提及的是,我的recyclerview位于Nestedscrollview中

最佳答案

我只是想出了解决方案,只需要在NestedScrollView内的布局上放置android:descendantFocusability="blocksDescendants"即可,这有助于我摆脱此问题。

感谢这篇文章帮助我摆脱了这个问题
NestedScrollView scroll down itself when content is fills

07-26 01:14