2016-05-17 3 views
0

Я использую карты Google для Android с фрагментами, но с проблемами при изменении других фрагментов с навигацией. Когда я вернусь к фрагменту с маркерами и нарисую приложение, снова нарисуйте все карты и маркеры. Как я могу взять под контроль все это? пожалуйста, помогитеGoogle Maps Android Фрагменты загружают последние маркеры

это как изменение управления фрагментов в деятельности

switch (position){ 
       case 0: 
        getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContainer,mapFragment).commit(); 
       break; 
       case 1: 
        getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContainer,searchFragment).commit(); 
        break; 
       case 2: 
        getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContainer,promoFragment).commit(); 
        break; 
       case 3: 
        getSupportFragmentManager().beginTransaction().replace(R.id.fragmentContainer,settingFragment).commit(); 
        break; 
      } 

И это, как показать карту фрагмента

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_map, container, false); 

    FragmentManager manager = getFragmentManager(); 
    FragmentTransaction transaction = manager.beginTransaction(); 
    map = new SupportMapFragment(); 
    transaction.add(R.id.map, map); 
    transaction.commit(); 
    map.getMapAsync(this); 

    return view; 
} 

public void onMapReady(GoogleMap googleMap) { 
    database = new Database(getContext()); 
    readItems(googleMap); //Show all markers 
} 

ответ

1

Вы можете перезаписать методы жизненного цикла, такие как onResume

За дополнительной информацией обращайтесь: https://newcircle.com/s/post/1250/android_fragments_tutorial

Более конкретно - onCreateView() вызывается только при первом создании фрагмента. Если вы переопределяете onResume(), вы можете обновлять значения и маркеры каждый раз, когда фрагмент возвращается в фокус.

@Override 
public void onResume(){ 
    super.onResume(); 

    <Your code here> 
} 
+0

Но когда i перемещаться по фрагментам всегда, когда вызывается CreateCreateView, или, может быть, код, который у меня есть во Фрагменте, для того, чтобы отображать карты, должно быть в другом месте. –

+0

Это потому, что вы делаете новый фрагмент каждый раз. Попробуйте использовать переменную-член. – RScottCarson

0

Я не уверен, если это правильно сделать, но решение ми было объявить фрагменты первых

и когда управление с переключателем я только скрыть фрагмент и показать нужный фрагмент

Смежные вопросы