美文网首页
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