1. 程式人生 > >Android RecyclerView:設定指定位置的兩種方法

Android RecyclerView:設定指定位置的兩種方法

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

/* RecyclerView 移動到當前位置,
     *
     * @param manager  設定RecyclerView對應的manager
     * @param n  要跳轉的位置
     */
    public static void MoveToPosition(LinearLayoutManager manager, int n) {
        manager.scrollToPositionWithOffset(n, 0);
        manager.setStackFromEnd(true);
    }

方法二、根據當前RecyclerView的條目數量,這個相對複雜一些,但是可以有效地避免指標越界呦..

/**
 * RecyclerView 移動到當前位置,
 *
 * @param manager   設定RecyclerView對應的manager
 * @param mRecyclerView  當前的RecyclerView
 * @param n  要跳轉的位置
 */
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); } }