我有一個android應用程序,其視圖中包含3個頁面,用戶可以通過在其間滑動手指(向左或向右 - 水平視圖分頁)進行導航。我下載了「android.support.v4.view.ViewPager」,並找到了實現刷卡部分的方法,主要歸功於本教程:http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/android swipe水平視圖使用MapView進行分頁
我的問題是我想要啓動一個MapView。但要啓動MapView,我需要一個擴展MapActivity的活動。如果我在包含所有3個視圖的MapActivity中擁有所有「RecordAdapter」類,那麼我遇到了一個問題,因爲每個MapActivity都只能分配一個MapView。所以如果我滑回到另一個頁面,然後回到地圖頁面,項目就會崩潰。我在代碼中的方式是:
switch (position) {
case 0:
resId = R.layout.record1;
break;
case 1:
resId = R.layout.record2;
break;
case 2:
resId = R.layout.record3;
break;
}
其中「record3」包含我的MapView。從實驗崩潰發生時,當我回到「record1」,然後再次「record2」。它似乎啓動了一個新的MapView,當它進入record2(?)!這一定是這樣,因爲奇怪的是,如果我有MapView在中間:
switch (position) {
case 0:
resId = R.layout.record1;
break;
case 1:
resId = R.layout.record3;
break;
case 2:
resId = R.layout.record2;
break;
}
它工作正常!但這不是我想要的(也許我將來也需要一個4位的頁面)。
我希望我寫它的方式是不是太複雜了..
那麼,應該怎麼辦?有任何想法嗎?編輯: 我找到了這個答案。我需要添加 「myPager.setOffscreenPageLimit(3);」 當我從我的代碼中調用ViewPager時。通過這種方式,觀點保持活力!
您能否編輯您的問題中的示例代碼以您的解決方案作爲示例進行更新?謝謝 – topwik 2012-07-30 15:30:58
對不起,我遲到了,但我正在休假。正如我上面寫的,你可以使用myPager.setOffscreenPageLimit(3);以克服困難(請參閱我提供的鏈接以查看如何將myPager定義爲ViewPager的實例)。我上面提供的示例代碼保持不變。但儘管崩潰問題已解決,但我在設置ClickListeners時遇到了一個可怕的問題。所以我最終使用了一個很棒的flingscrollviewer。如果你不想在你的視圖中發生點擊事件,上面的代碼應該可以工作。 – george 2012-08-03 08:47:42
感謝您的回覆。不知道我最初的評論意圖是什麼......:我想代碼一直在那裏。問候, – topwik 2012-08-03 17:51:25