添加OnScrollChangedListener后ViewTreeObserver不调用onScrollChanged

Dan*_*iel 4 android scroll android-view

我有一个带webview和按钮的布局.按钮可见,但滚动webview后变为可见.我正在使用ViewTreeObserver,但由于某种原因,未调用onScrollChanged.我是否误解了如何调用onScrollChanged?

this.licenseAgreementView = (WebView) findViewById(R.id.licenseAgreementView);
ViewTreeObserver observer = this.licenseAgreementView.getViewTreeObserver();
observer.addOnScrollChangedListener(new OnScrollChangedListener() {
    public void onScrollChanged() {
    makeButtonVisible();
    }
});
Run Code Online (Sandbox Code Playgroud)

Aal*_*lap 5

在我的情况下,我必须将GlobalLayoutListener附加到我的scrollView,然后在LayoutChanged上我必须添加scrollListener.

scrollView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            ViewTreeObserver observer = scrollView.getViewTreeObserver();
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                observer.removeOnGlobalLayoutListener(this);
            } else {
                observer.removeGlobalOnLayoutListener(this);
            }
            observer.addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
                @Override
                public void onScrollChanged() {
                    //Your code here
                }
            });
        }
    });
Run Code Online (Sandbox Code Playgroud)

这对我有用.