android 百度定位开启后fragment 不显示,解决Android百度地图MapView在ViewPager中Fragment切换黑屏问题...
百度地圖切換界面出現(xiàn)黑屏原因是地圖退出釋放內(nèi)存時渲染出現(xiàn)bug導(dǎo)致、因為是百度地圖本身內(nèi)部bug、所以我們無法從本質(zhì)上去修復(fù)這個bug
android:id="@ id/dynamics_mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:background="@color/common_background"
android:layout_alignParentStart="true"
android:layout_below="@ id/dynamics_top"
android:clickable="true"/>
解決方案一
在官方論壇找到了解決辦法、就是要把mapview改成TextureMapView
解決方案二
我們bug的出現(xiàn)黑屏現(xiàn)象隱藏起來、將地圖的釋放過程放入后臺進(jìn)行、從而避免黑屏的出現(xiàn)、這里提供解決方案、大家可以參考一下、然后根據(jù)自己的需求自定義解決方案
1、在使用MapView的Fragment的onResume/onPause方法中手動調(diào)用設(shè)置view是否可見
2, Activity對應(yīng)XML布局中單獨使用一個View來替換嵌套有MapView的Fragment、需要顯示該Fragment 時、設(shè)置該View為可見、不使用時設(shè)置為不可見
3、從地圖界面切換只其他界面時、手動隱藏地圖界面、并在后臺釋放內(nèi)存、完整代碼如下
再不行就用1.通過左邊側(cè)邊欄,從fragmentB切換到fragmentA(此時fragmentA會發(fā)生閃黑屏),解決如下:
將百度地圖mapView設(shè)置為不可見(android:visibility="invisible"),在fragmentA的onResume下延遲0.5秒,將mapView設(shè)置為可見,即在fragmentA完全滑出后再顯示mapView;(0.5秒時間足夠了吧),這樣從fragmentB切換到fragmentA就不會閃黑屏了。代碼如下:
handler.postDelayed(new Runnable() {
@Override
public void run() {
mMapView.setVisibility(View.VISIBLE);
}
},500) ;
總結(jié)
以上是生活随笔為你收集整理的android 百度定位开启后fragment 不显示,解决Android百度地图MapView在ViewPager中Fragment切换黑屏问题...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android progressbar动
- 下一篇: android studio for循环