setOnScrollPositionChange method

  1. @override
Future<void> setOnScrollPositionChange(
  1. void onScrollPositionChange(
    1. ScrollPositionChange scrollPositionChange
    )?
)

Sets the listener for content offset changes.

Implementation

@override
Future<void> setOnScrollPositionChange(
    void Function(ScrollPositionChange scrollPositionChange)?
        onScrollPositionChange) async {
  _onScrollPositionChangeCallback = onScrollPositionChange;

  if (onScrollPositionChange != null) {
    final WeakReference<WebKitWebViewController> weakThis =
        WeakReference<WebKitWebViewController>(this);
    _uiScrollViewDelegate =
        _webKitParams.webKitProxy.createUIScrollViewDelegate(
      scrollViewDidScroll: (UIScrollView uiScrollView, double x, double y) {
        weakThis.target?._onScrollPositionChangeCallback?.call(
          ScrollPositionChange(x, y),
        );
      },
    );
    return _webView.scrollView.setDelegate(_uiScrollViewDelegate);
  } else {
    _uiScrollViewDelegate = null;
    return _webView.scrollView.setDelegate(null);
  }
}