1

computeHorizontalScrollOffset()ListView 内の Horizo​​ntal RecyclerView が、最後までスクロールすると間違って返される理由を誰にも教えてもらえますか?

ここに画像の説明を入力

holder.recyclerView.addOnScrollListener()ListView アダプターに getView() を次のように設定します。

@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
    super.onScrollStateChanged(recyclerView, newState);

    if (newState == RecyclerView.SCROLL_STATE_IDLE) {
        float horizontalScrollOffSet = recyclerView.computeHorizontalScrollOffset();
        int expectedPosition = Math.round((horizontalScrollOffSet + padding - firstItemWidth) / itemWidth);

        Log.i("position", "horizontalScrollOffSet:"+horizontalScrollOffSet+",expectedPosition:"+expectedPosition);
    }

}

Log.i データ: ここに画像の説明を入力

ビューが左から右にスクロールされている間、オフセット数値は増加するはずです。最後までスクロールした場合を除いて、すべて正常に機能し、小さい数値が返されました。これについてはまったくわかりませんが、アイテムの中心点を計算するために必要です。誰でもご案内いただけますか?:'(

私が試したところ、最後のパディング項目のサイズがメイン項目のサイズと同じに設定されている場合、RecyclerView は正常に動作します。

4

0 に答える 0