3

を介して RecyclerView の特定の項目にプログラムでスクロールした後に発生するコールバックがありますLinearLayoutManager.smoothScrollToPosition()。ユーザーが項目をタップすると、右側の項目が RecyclerView の上部にスクロールされます。LinearLayoutManager をサブクラス化して、常にアイテムの上部にスナップするようにしました。
これは、スクロール イベントが発生した場合に機能しますが、RecyclerView が既に正しい位置にある場合は、onScrollStateChangedスクロールが発生しないため、コールバックを取得できません。とにかくそのイベントを取得する方法はありますか?RecyclerView をスクロールする必要があるかどうかを事前に決定しますか?

4

2 に答える 2

-1

私は自分で次の解決策を見つけました:

// get the view the user selected
View view = mLayoutManager.findViewByPosition(index);
// get top offset 
int offset = view.getTop();
if (offset == 0) { // the view is at the top of the scrollview
    showDetailViewInternal(event);
} else {
    // scrolling
}
于 2016-07-13T07:49:16.600 に答える