有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将自定义ScrollView转换为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和一个TableLayout中(也许这是错误?)。当我尝试使用

PagerScrollView pagerScrollView = rootView.findViewById(R.id.pager_scroll_view);

我得到:

安卓.widget.ScrollView cannot be cast to exampleapplication.PagerScrollView

我怎样才能正确地投下它


共 (1) 个答案

  1. # 1 楼答案

    问题是,我在xml中使用了普通的滚动视图,而不是<;例如应用程序。CustomScrollView>;。替换它解决了我的问题