/** * Register a WebView to the current MaterialViewPagerAnimator Listen to * ObservableScrollViewCallbacks so give to $[observableScrollViewCallbacks] your * ObservableScrollViewCallbacks if you already use one For loadmore or anything else * * @param webView the scrollable * @param observableScrollViewCallbacks use it if you want to get a callback of the RecyclerView */ public void registerWebView( final ObservableWebView webView, final ObservableScrollViewCallbacks observableScrollViewCallbacks) { if (webView != null) { if (scrollViewList.isEmpty()) onMaterialScrolled(webView, webView.getCurrentScrollY()); scrollViewList.add(webView); // add to the scrollable list webView.setScrollViewCallbacks( new ObservableScrollViewCallbacks() { @Override public void onScrollChanged(int yOffset, boolean b, boolean b2) { if (observableScrollViewCallbacks != null) observableScrollViewCallbacks.onScrollChanged(yOffset, b, b2); if (isNewYOffset(yOffset)) onMaterialScrolled(webView, yOffset); } @Override public void onDownMotionEvent() { if (observableScrollViewCallbacks != null) observableScrollViewCallbacks.onDownMotionEvent(); } @Override public void onUpOrCancelMotionEvent(ScrollState scrollState) { if (observableScrollViewCallbacks != null) observableScrollViewCallbacks.onUpOrCancelMotionEvent(scrollState); } }); this.setScrollOffset(webView, -lastYOffset); } }
public void onViewPagerPageChanged() { scrollDown(lastYOffset); View visibleView = getTheVisibileView(scrollViewList); if (!canScroll(visibleView)) { followScrollToolbarLayout(0); onMaterialScrolled(visibleView, 0); } }