在 scrollView 中左右滑动
Swipe left and right in scrollView
我在滚动视图中有一些布局。这些布局必须在左右方向上 "swipable" 但它会与 scrollView 产生一些冲突。
我试图在触摸其中一种布局时禁用 scrollView,但在那种情况下,我的 scrollView 几乎总是被禁用。
这是我的布局的样子。
我现在的情况:
private void swipePositionsEvent() {
for(LinearLayout layout : layouts){
layout.setOnTouchListener(new OnSwipeTouchListener(this,
((ScrollView)findViewById(R.id.scroll_view_confirm_games))){
public void onSwipeRight() {
flipper.showNext();
}
public void onSwipeLeft() {
flipper.showPrevious();
}
});
}
在 OnSwipeTouchListener 中:
Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
scrollView.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
scrollView.requestDisallowInterceptTouchEvent(false);
break;
}
return gestureDetector.onTouchEvent(event);
}
谢谢!
在禁用滚动视图之前检测第一个移动是水平还是垂直。
我在滚动视图中有一些布局。这些布局必须在左右方向上 "swipable" 但它会与 scrollView 产生一些冲突。
我试图在触摸其中一种布局时禁用 scrollView,但在那种情况下,我的 scrollView 几乎总是被禁用。
这是我的布局的样子。
我现在的情况:
private void swipePositionsEvent() {
for(LinearLayout layout : layouts){
layout.setOnTouchListener(new OnSwipeTouchListener(this,
((ScrollView)findViewById(R.id.scroll_view_confirm_games))){
public void onSwipeRight() {
flipper.showNext();
}
public void onSwipeLeft() {
flipper.showPrevious();
}
});
}
在 OnSwipeTouchListener 中:
Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
scrollView.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
scrollView.requestDisallowInterceptTouchEvent(false);
break;
}
return gestureDetector.onTouchEvent(event);
}
谢谢!
在禁用滚动视图之前检测第一个移动是水平还是垂直。