大家好,我在自定义 ScrollView 中有一个 GridView
这是我正在使用的代码 public class CustomScrollView extends ScrollView {
public CustomScrollView(Context context) {
super(context);
}
public CustomScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
final int action = ev.getAction();
switch (action)
{
case MotionEvent.ACTION_DOWN:
Log.i("VerticalScrollview", "onInterceptTouchEvent: DOWN super false" );
super.onTouchEvent(ev);
break;
case MotionEvent.ACTION_MOVE:
return false; // redirect MotionEvents to ourself
case MotionEvent.ACTION_CANCEL:
Log.i("VerticalScrollview", "onInterceptTouchEvent: CANCEL super false" );
super.onTouchEvent(ev);
break;
case MotionEvent.ACTION_UP:
Log.i("VerticalScrollview", "onInterceptTouchEvent: UP super false" );
return false;
default: Log.i("VerticalScrollview", "onInterceptTouchEvent: " + action ); break;
}
return false;
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
super.onTouchEvent(ev);
Log.i("VerticalScrollview", "onTouchEvent. action: " + ev.getAction() );
return true;
}
}
对于网格视图,我添加了一个这样的 touchListener
gridview.setOnTouchListener(new GridView.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
scroll.onTouchEvent(event);
return false;
}
});
其中 scroll 是对我上面给出的 CustomScrollView 的引用
CustomScrollView scroll=(CustomScrollView)findViewById(R.id.page);
我正在使用的网格视图是显示日历想要做的是每当我触摸网格视图时,事件应该转移到 CustomScrollView 以便我可以滚动到 CustomScrollView
它正在工作,但问题是当我尝试从 GridView 滚动时,如果我尝试从 gridview 上方或下方的位置滚动,屏幕会闪烁很多,它工作正常
我错过了什么吗?请帮助我一个星期以来陷入困境的人