/** * Register a ScrollView to the current MaterialViewPagerAnimator * Listen to ObservableScrollViewCallbacks so give to $[observableScrollViewCallbacks] your ObservableScrollViewCallbacks if you already use one * For loadmore or anything else * * @param activity current context * @param mScrollView the scrollable * @param observableScrollViewCallbacks use it if you want to get a callback of the RecyclerView */ public static void RegisterScrollView(Activity activity, ObservableScrollView.ObservableScrollView mScrollView, IObservableScrollViewCallbacks observableScrollViewCallbacks) { if (activity != null && _hashMap.ContainsKey(activity)) { MaterialViewPagerAnimator animator; if (_hashMap.TryGetValue(activity, out animator) && animator != null) { animator.RegisterScrollView(mScrollView, observableScrollViewCallbacks); } } }
/** * 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(ObservableWebView webView, IObservableScrollViewCallbacks observableScrollViewCallbacks) { if (webView != null) { if (!ScrollViewList.Any()) { OnMaterialScrolled(webView, webView.GetCurrentScrollY()); } ScrollViewList.Add(webView); //add to the scrollable list webView.SetScrollViewCallbacks(new ObservableWebViewCallbacks(this, webView, observableScrollViewCallbacks)); SetScrollOffset(webView, -LastYOffset); } }
public void SetScrollViewCallbacks(IObservableScrollViewCallbacks listener) { _mCallbacks = listener; }
public ObservableScrollViewCallbacks(MaterialViewPagerAnimator materialViewPagerAnimator, ObservableScrollView.ObservableScrollView scrollView, IObservableScrollViewCallbacks observableScrollViewCallbacks) { _animator = materialViewPagerAnimator; _scrollView = scrollView; _observableScrollViewCallbacks = observableScrollViewCallbacks; }
/** * 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(ObservableWebView webView, IObservableScrollViewCallbacks observableScrollViewCallbacks) { if (webView != null) { if (!ScrollViewList.Any()) OnMaterialScrolled(webView, webView.GetCurrentScrollY()); ScrollViewList.Add(webView); //add to the scrollable list webView.SetScrollViewCallbacks(new ObservableWebViewCallbacks(this, webView, observableScrollViewCallbacks)); SetScrollOffset(webView, -LastYOffset); } }
/** * Register a ScrollView to the current MaterialViewPagerAnimator * Listen to ObservableScrollViewCallbacks so give to $[observableScrollViewCallbacks] your ObservableScrollViewCallbacks if you already use one * For loadmore or anything else * * @param scrollView the scrollable * @param observableScrollViewCallbacks use it if you want to get a callback of the RecyclerView */ public void RegisterScrollView(ObservableScrollView.ObservableScrollView scrollView, IObservableScrollViewCallbacks observableScrollViewCallbacks) { if (scrollView != null) { ScrollViewList.Add(scrollView); //add to the scrollable list if (scrollView.Parent != null && scrollView.Parent.Parent is ViewGroup) scrollView.SetTouchInterceptionViewGroup((ViewGroup)scrollView.Parent.Parent); scrollView.SetScrollViewCallbacks(new ObservableScrollViewCallbacks(this, scrollView, observableScrollViewCallbacks)); scrollView.Post(() => SetScrollOffset(scrollView, LastYOffset)); } }
/** * Register a ScrollView to the current MaterialViewPagerAnimator * Listen to ObservableScrollViewCallbacks so give to $[observableScrollViewCallbacks] your ObservableScrollViewCallbacks if you already use one * For loadmore or anything else * * @param scrollView the scrollable * @param observableScrollViewCallbacks use it if you want to get a callback of the RecyclerView */ public void RegisterScrollView(ObservableScrollView.ObservableScrollView scrollView, IObservableScrollViewCallbacks observableScrollViewCallbacks) { if (scrollView != null) { ScrollViewList.Add(scrollView); //add to the scrollable list if (scrollView.Parent != null && scrollView.Parent.Parent is ViewGroup) { scrollView.SetTouchInterceptionViewGroup((ViewGroup)scrollView.Parent.Parent); } scrollView.SetScrollViewCallbacks(new ObservableScrollViewCallbacks(this, scrollView, observableScrollViewCallbacks)); scrollView.Post(() => SetScrollOffset(scrollView, LastYOffset)); } }