解决方案思路:
自定义View,继承HorizontalScrollView,重写onScrollChanged方法,将此方法的监听抽成接口,暴露到外面调用。
已解决:HorizontalScrollView的setScrollViewListener方法不兼容低版本的问题
之后,在java代码中给我们自定义的HorizontalScrollView设置监听。
mHorizontalScrollView= (MyScrollView) findViewById(R.id.horizontalScrollView_re);
mHorizontalScrollView.setScrollViewListener(newMyScrollView.ScrollViewListener() {
@Override
public voidonScrollChanged(MyScrollView scrollView,int x,int y,int oldx,int oldy) {
horizontalScrollView_title.scrollTo(x, y);
}
});
附:MyScrollView.java
public class MyScrollView extends HorizontalScrollView {
    private ScrollViewListener scrollViewListener = null;
    public MyScrollView(Context context) {
        super(context);
    }

    public MyScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        super.onScrollChanged(l, t, oldl, oldt);

        if (scrollViewListener != null) {
            scrollViewListener.onScrollChanged(this, l, t, oldl, oldt);
        }
    }

    public void setScrollViewListener(ScrollViewListener scrollViewListener) {
        this.scrollViewListener = scrollViewListener;
    }

    public interface ScrollViewListener {
        void onScrollChanged(MyScrollView scrollView, int x, int y, int oldx, int oldy);

    }
}

相关文章: