为什么RecyclerView smoothScrollToPosition滚动到0会慢慢发生?

时间:2017-12-05 09:57:22

标签: android android-recyclerview bottomnavigationview

我有RecyclerView并使用支持库中的ViewPager代替BottomNavigationViewRecyclerView非常舒适地滚动PagerSnapHelper

我遇到了一个可怕而奇怪的问题: 当我的BottomNavigationView听众抓住方法onNavigationItemSelected的新位置时,我会这样做:

    override fun onNavigationItemSelected(item: MenuItem): Boolean {
        var newPos = -1
        //little code for checked only a NEW position, the same values ignored
        recycler.smoothScrollToPosition(currentPos) //values 0, 1 and 2

        return true
    }

smoothScrollToPositioncurrentPos = 0回收者滚动到第一位置(0)非常慢时(与其他相比) )。调用方法smoothScrollToPositiononScrollStateChanged之间的时间(对于具有参数newState = RecyclerView.SCROLL_STATE_IDLE的回收器视图滚动侦听器),值1和2非常小,值= 0大约一秒(!)

为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:0)

使用recyclerView.scrollToPosition(position);代替recycler.smoothScrollToPosition(currentPos)

recyclerView.scrollToPosition(position);不会显示向下滚动的动画,效果会立竿见影。

如果为 recyclerView

设置 linearLayoutManager ,也可以尝试此操作

linearLayoutManager.scrollToPositionWithOffset(position, 0);