美文网首页
Android RecyclerView:设置指定位置的两种方法

Android RecyclerView:设置指定位置的两种方法

作者: 木叶纷飞 | 来源:发表于2018-08-11 16:17 被阅读0次


    方法一,直接使用当前的manager

        /* RecyclerView 移动到当前位置

        * @param manager  设置RecyclerView对应的manager

        * @param n  要跳转的位置 */    

            public static void MoveToPosition(LinearLayoutManager manager, int n) {

                            manager.scrollToPositionWithOffset(n, 0);

                            manager.setStackFromEnd(true);

               }

    方法二、根据当前RecyclerView的条目数量,这个相对复杂一些,但是可以有效地避免指针越界

    public static void MoveToPosition(LinearLayoutManager manager, RecyclerView mRecyclerView, int n) {

        int firstItem = manager.findFirstVisibleItemPosition();

        int lastItem = manager.findLastVisibleItemPosition();

        if (n <= firstItem) {

            mRecyclerView.scrollToPosition(n);

        } else if (n <= lastItem) {

            int top = mRecyclerView.getChildAt(n - firstItem).getTop();

            mRecyclerView.scrollBy(0, top);

        } else {

            mRecyclerView.scrollToPosition(n);

        }

    }

    相关文章

      网友评论

          本文标题:Android RecyclerView:设置指定位置的两种方法

          本文链接:https://www.haomeiwen.com/subject/caudbftx.html