我正在开发一个应用程序,它在ScrollView中有一个垂直的ViewPager。事情是ViewPager只在水平滚动时识别触摸事件,否则ScrollView将聚焦并执行滚动。 我认为这可行:
viewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
scrollView.requestDisallowInterceptTouchEvent(true);
int action = event.getActionMasked();
switch(action){
case MotionEvent.ACTION_UP:
scrollView.requestDisallowInterceptTouchEvent(false);
break;
}
return false;
}
});
但由于ViewPager在执行垂直滚动时无法识别触摸事件,因此这段代码无效。 我想要实现的是当我触摸它时将焦点放在ViewPager上,并在我没有触及ViewPager时将焦点放在ScrollView上。提前谢谢。
答案 0 :(得分:0)
这是我用于滚动视图的一些代码,这些代码存在文本视图聚焦问题。它可能对你有帮助。它可能不会。
ScrollView sv = (ScrollView) view.findViewById(R.id.svRecord);
sv.setOnTouchListener(this);
sv.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
sv.setFocusable(true);
sv.setFocusableInTouchMode(true);