将自定义 ScrollView 投射到 ScrollView

Casting custom ScrollView to ScrollView

我有一个自定义滚动视图,如下所示:

public class PagerScrollView extends ScrollView {

    float touchX = 0;
    float touchY = 0;

    ViewPager parentPager;

    public void setParentPager(ViewPager parentPager) {
        this.parentPager = parentPager;
    }

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

    public PagerScrollView(Context context) {
        super(context);
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        switch (ev.getActionMasked()) {
            case MotionEvent.ACTION_DOWN:
                touchX = ev.getX();
                touchY = ev.getY();
                return super.onTouchEvent(ev);
            case MotionEvent.ACTION_MOVE:
                if (Math.abs(touchX-ev.getX()) < 40) {
                    return super.onTouchEvent(ev);
                } else {
                    if (parentPager == null) {
                        return false;
                    } else {
                        return parentPager.onTouchEvent(ev);
                    }
                }
            case MotionEvent.ACTION_CANCEL:
            case MotionEvent.ACTION_UP:
                touchX = 0;
                touchY = 0;
                break;
        }

        return super.onTouchEvent(ev);
    }
}

在 xml 中,我将它包裹在一个 ViewPager 和一个 TabLayout 周围(也许这是错误?)。当我尝试使用

分配它时
PagerScrollView pagerScrollView = rootView.findViewById(R.id.pager_scroll_view);

我得到:

android.widget.ScrollView cannot be cast to exampleapplication.PagerScrollView

如何正确投射?

问题是我在 xml 中使用了普通的 ScrollView 而不是我的 。替换它解决了我的问题。