web-dev-qa-db-ja.com

RecyclerViewまたはWebviewのスクロールYを取得します

Webviewに配置されたアクティビティRecyclerviewコンテンツを作成しました。 WebビューをスクロールするときにスクロールY位置を取得したい。 Webview.getScrollY()Webview.getY()RecyclerView.getScrollY()RecyclerView.getY()、...を試しましたが、うまくいきません。現在のスクロールYを取得できません。WebviewまたはRecyclerViewのスクロールYを取得するための提案はありますか?

10
Phan Sinh

RecyclerViewには RecyclerView.OnScrollListener を使用し、Webビューには View.OnScrollChangeListener を使用します。

次のように、スクロール全体を自分で追跡する必要があります。

private int mTotalScrolled = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ...

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);

                mTotalScrolled += dy;

            }
        });

    ...

}

private int getScrollForRecycler(){
    return mTotalScrolled;
}
13
JoeyJubb

@Pkmmteが述べたように、この状況ではcomputeVerticalScrollOffset()の方が便利です。

mTotalScrolled  = recyclerView.computeVerticalScrollOffset();
12
Stanley Kou