2013-12-19 2 views
0

Im пытается поставить MapFragment внутри диалогового окна DialogFragment, он отлично работает, но я не знаю, как я могу подождать, пока getMap()! = Null ... вот мой код:Android: GetMap() == null внутри DialogFragment

public class DialogMapa extends DialogFragment{ 

    private SupportMapFragment fragment; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View view = inflater.inflate(R.layout.layout_dialog_mapa, container,false); 
     getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); 

     SupportMapFragment fragment = new SupportMapFragment(); 
     FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); 
     transaction.add(R.id.map, fragment).commit();  

     GoogleMap mapa = null; 
     try { 
      mapa =fragment.getMap(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     if (mapa==null) Toast.makeText(getActivity(), "NULL", Toast.LENGTH_SHORT).show(); 


    return view; 
    } 

} 

и мой надуйте расположение:

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="0dp" > 

    <FrameLayout 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
    </FrameLayout> 

</RelativeLayout> 

Спасибо заранее !!

ответ

1

Так что с новой картой карт, этот звонок не гарантирует возврат не нуль. Карта довольно сложная и инициализирует много состояний на и от потока рендеринга.

В вашем случае безопасно звонить после onFragmentsResumed() или после присоединения фрагмента к мероприятию. Вы всегда можете использовать обработчик для повторной проверки некоторого момента позже.

+0

это работает, tyvm ^^ – naxo

0

getMap() не является нулевым внутри onStart() фрагмента диалога, после представления вида.

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