将自定义 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 而不是我的 。替换它解决了我的问题。
我有一个自定义滚动视图,如下所示:
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 而不是我的