У меня вопрос и проблема. Во-первых, я не знаю, возможно ли это:
у меня есть активность фрагмента с вкладками. На одной вкладке (которая является фрагментом) у меня есть карта со скрытым списком предметов. Карта помещена в рамку этого фрагмента. Список скачивается и по нажатию кнопки снова виден. На карте у меня есть маркеры, которые представляют эти предметы.
Моя проблема заключается в следующем: я всегда получаю карту null
, когда использую getMap()
из фрагмента, который я помещаю в кадр.
Возможно ли это? А если нет, то что посоветуете? Заранее спасибо.
ОТРЕДАКТИРОВАНО
public class MapExplore extends Fragment{
private FrameLayout frame;
private ListView list;
private String api_key;
private GoogleMap map;
private MapExploreAdapter adapter;
private SupportMapFragment map_fragment;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
api_key = Configuration.get_prefereence_string(getActivity(), "user_activation_key", null);
adapter = new MapExploreAdapter();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.map_explore, null);
frame = (FrameLayout) view.findViewById(R.id.frameMap);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
setUpMapFragment();
}
private void setUpMapFragment(){
if(map_fragment == null){
map_fragment = SupportMapFragment.newInstance();
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.add(frame.getId(), map_fragment, Utils.MAP_FRAGMENT_TAG);
ft.commit();
}
}
private void setUpMap(){
Log.i("SET UP MAP", "Started");
if(map == null){
map = ((SupportMapFragment) map_fragment).getMap();
}
if(map != null){
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(Utils.SF_LAT, Utils.SF_LON), 13));
}
}
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
setUpMap();
}
Я отредактировал свой вопрос с некоторым кодом...