1

我花了几个小时试图获得一个在我的viewpager中工作的功能性,响应性的mapview片段,现在它终于工作了,我不太确定为什么!Mapview Fragment + ViewPager,引起奇怪的交互

背景: 我使用ActionBarSherlock作为我的操作栏,我使用viewpager在三个片段之间切换:列表,图像视图+ textview和mapview。我有一个viewpagerindicator去看我的观点。我正在使用android-support-v4的地图版本。

工作内容: - 覆盖viewpager的onInterceptTouchEvent方法返回false - 在mapview上设置一个onClickListener,它不执行任何操作。

mapview会出现,但在添加侦听器之前不会响应,但为什么添加onclicklistener会使所有手势响应?

回答

2

也许你应该重新开始。在我的情况下,我所要做的就是将MapFragment放入ViewPager和FragmentPageAdapter中。 然后创建了自己的ViewPager与覆盖方法只是为了让MapFragment可用:

@Override 
public boolean onInterceptTouchEvent(MotionEvent event) { 
    // hacky hack to never intercept map pages events unless its on the 
    // very edge of screen - last or first fifth of the view size 
    if (((FragmentPagerAdapter) getAdapter()).getItem(getCurrentItem()) instanceof SupportMapFragment) { 
     if (event.getAction() == MotionEvent.ACTION_DOWN && event.getX() < (getWidth() - (getWidth()/5)) && event.getX() > (getWidth()/5)) { 
      // Never allow swiping to switch if not right on the edge 
      return false; 
     } 
    } 
    return super.onInterceptTouchEvent(event); 
} 
+0

这是什么是正常的'Fragment'用'MapView'里面? – surfer190