4
我剛剛切換到最新版本的android-maps-extensions(2.2.0)以及最新的Play Services(6.5.87)和支持庫(21.0.3)。 現在我不能重用我的MapFragment。如何在其他片段內重新使用SupportMapFragment
我有MainActivity與NavigationDrawer。其中一個片段是帶有GoogleMap片段的片段。當我在NavigationDrawer中切換片段時,他們會重新創建自己。以前我用這個很簡單的解決方案。我用已經充氣的視圖:
public View onCreateView(LayoutInflater inflater, ViewGroup container, final Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null) {
parent.removeView(view);
}
return view;
}
view = inflater.inflate(R.layout.fragment_map, container, false);
SupportMapFragment mapFragment = SupportMapFragment.newInstance();
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.add(R.id.container, mapFragment).commit();
mapFragment.getExtendedMapAsync(new OnMapReadyCallback() {
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
setupMap();
}
});
return view;
}
但現在它不起作用。地圖不顯示這個片段第二次打開的時間。
我可以扔掉這個醜陋的代碼
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null) {
parent.removeView(view);
}
return view;
}
並始終重新視圖裏面。但是我有成千上萬的標記(當然還有令人敬畏的集羣),並且需要很多時間來重繪它們。
我知道這不是擴展庫的問題,谷歌地圖有相同的行爲。但是,也許你知道正確的決定?
同一問題的重複使用MapView的任何設置。似乎是玩圖書館的錯誤。 – zyamys 2015-03-06 07:25:38