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