纪录在安卓学习中遇到的问题——百度地图在viewpage中的显示问题(已解决)

来源:互联网 发布:劳丽诗的淘宝店 编辑:程序博客网 时间:2024/06/16 17:08

一直在csdn中寻找学习安卓的方法,看了不少各位高手的文章,也学到了不少,作为一个刚踏入这个行业不久的新手,实感压力很大,自学安卓也有一段时间了,但是还是没有入门,刚毕业一个月,值得庆幸的是终于找到工作了,于是觉得终于有人可以带带我这个菜鸟了,但是,现实是只能靠自己。


在磨练中成长,每一个遇到的问题都意味着又学到了新东西,所以在这里纪录下在android学习道路上遇到的问题,希望各位和我一样的新手一起讨论,当然,也希望高手们帮助我们一起成长,如果新手同胞们遇到了一样的问题,大家一起解决。


最近公司一个项目里用到了地图,因为以前做过一点百度地图,自认为会比较好解决,但是,当我换了一种方式用时却遇到了难题,

我先是用viewpager做为总体的布局设计,把地图放在其中一个页面,一共三个页面。


首先遇到的问题就是viewpager和地图滑动的冲突,两个空间都有左右滑动的效果,放一起就产生了冲突,滑动效果不好用。

第二个问题比较头疼,当从地图页面滑到与之不相邻的页面时,也就是说地图在第一个页面,滑到第三个页面时,在回滑到地图时,地图显示就会产生不能正常显示的问题,变成一块白板,而相邻页面间来回切换则不会产生这个问题,这个问题我一直想不出原因,可能是viewpager对页面销毁与创建的问题,对viewpager了解的也比较少,


欢迎大家一起讨论,一起进步!找出原因后,会详细写出解决方法


解决方法:在反复测试后我发现viewpager中子页面加载的Activity的生命周期发生混乱的现象,不能正常调用,于是查阅了很多关于如何管理viewpager中每个页面的生命周期的资料,在这里我推荐一篇文章,

点击打开链接,这个链接给了一个思路,当然我是讲不明白的。


但是我觉得这种方法对于我这种菜鸟来说过于高大上(其实是我没怎么理解 - -),于是我想到了viewpager是怎么管理各个页面的,于是又开始百度,发现viewpager是在创建时缓存了页面,具体几个也不清楚,因为生命周期混乱,不能正常执行,所以当页面多了,缓存清除之后就不能正常显示了(大概是这个原因吧,其实我也还没弄清楚,各路老鸟们还请关照),于是我就想如果我有几个页面就让他缓存几个就应该没问题了,当然这是个有局限性的办法,一旦页面多了就不适用了,

viewPager.setOffscreenPageLimit(3); 这个就是设置缓存数量的方法,3就是页面数,经测试是可以的。


这个问题算是解决了一办吧,因为这个解决方法我觉得是最笨的 - -,所以还会继续寻找更好的解决方法。


0 0
原创粉丝点击