如何从父视图中滚动ViewPager?

时间:2015-03-20 08:31:13

标签: android scroll android-viewpager

我正在实施看起来像这样的应用教程。

enter image description here

我做了一个很好的小ViewPager并将其放在模拟ImageView上。问题是,当我尝试从其他地方滚动它时,ViewPager不会滚动,例如在视图寻呼机指示器周围。这很自然,因为ViewPager无法听取自身之外的触摸事件。

  1. 当我尝试从其他地方滚动时,如何滚动ViewPager
  2. 我已尝试ViewPager的父级detect touch events,但我无法弄清楚如何将onFling()onScroll()ViewPager联系起来滚动。

    1. 如果有更好的建议实施这种用户界面,会是什么呢?

    2. 是否有与此类似的教程或自定义库?

1 个答案:

答案 0 :(得分:1)

为您的外View.OnTouchListener设置ViewPager,如果您在显示内部ViewPager的正确页面上,请检查内部。如果内部ViewPager不是第一个或最后一个,您可以将MotionEvent发送到第二个dispatchTouchEvent(MotionEvent me)

outerViewPager.setOnTouchListener(new OnTouchListener()
    {

        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
            if(outerViewPagerAdapter.isCurrentPageHaveInnerViewPager() &&
                ! innerViewPagerAdapter.isOnFirstOrLastPage()){
                innerViewPagerAdapter.dispatchTouchEvent(event);
                return true;
            }
            return super.onTouch(event); //outer will get touch events
        }
   });

如果需要,您也可以在调度前调整x / y触摸线