我有一个安卓应用程序,其中一个视图包含3页,用户可以通过左右滑动手指进行导航(水平视图分页)。我下载了“android.support.v4.view.ViewPager”,并在这里找到了实现滑动部分的方法,大部分归功于这个教程:http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/
我的问题是我想要一个视图来启动MapView。但是为了启动MapView,我需要一个扩展MapActivity的活动。如果我将所有的“RecordAdapter”类放在一个包含所有3个视图的MapActivity中,那么我会遇到问题,因为每个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”时,程序会崩溃。似乎在进入“record2”时会启动一个新的MapView (?)!这一定是因为如果我把MapView放在中间位置:
switch (position) {
case 0:
resId = R.layout.record1;
break;
case 1:
resId = R.layout.record3;
break;
case 2:
resId = R.layout.record2;
break;
}
它可以正常工作!但这不是我想要的(也许将来我还需要第四页)。
我希望我写的方式不太复杂...
那么我该怎么办?有什么建议吗?
编辑: 我找到了答案。我需要在调用我的ViewPager时添加 "myPager.setOffscreenPageLimit(3);" 这样视图就会保持活动状态!
myPager.setOffscreenPageLimit(3);
。 - Rahul Patel