我正在創建一個簡單的活動,其中包含兩個選項卡。我遵循documentation,所以我使用Fragment
。 在我的活動中只有兩個選項卡。第一個是地圖(MapFragment
),第二個是簡單列表(ListFragment
)管理選項卡內的碎片
所有的作品都很好,我唯一的問題是我無法正確管理地圖。
在onTabSelected
回調我使用下面的代碼:
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (mFragment == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs);
ft.add(android.R.id.content, mFragment, mTag);
} else {
ft.attach(mFragment);
if(mTag.compareToIgnoreCase("map")==0)
setUpMapIfNeeded((MapFragment)mFragment);
}
}
其中地圖是我的第一個活動的標籤和mthod setUpMapIfNeeded
是:
private static void setUpMapIfNeeded(MapFragment mMapFragment) {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
mMap = mMapFragment.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
}
}
}
所以標記中添加僅當我選擇標籤時,地圖纔會顯示。
問題是:如何在啓動活動時(不顯式按第一個選項卡)修改用於執行addMarker操作的代碼?
是一個解決方案,但隨後您每次添加標記onResume被調用並添加地圖。如果你在某個時候有很多標記,這會真的減慢你的應用。 – cYrixmorten