在ScrollView中管理垂直ViewPager

时间:2015-01-26 16:51:01

标签: android performance android-viewpager scrollview

我正在开发一个应用程序,它在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上。提前谢谢。

1 个答案:

答案 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);