سؤال

In my app there is one SherlockFragmentActivity, whick has 6 fragments. One of these fragments contains map-fragment.

Problem : Now problem is when I launch an app the map loads successfully, but when I goto other fragment and then again try to load map-fragment it doesn't load and gives errors.

I've also tried to remove view, but it is also not working

Here is my code,

public class SearchMapFragment extends SherlockFragment implements
        OnMyLocationButtonClickListener, ConnectionCallbacks,
        OnConnectionFailedListener, LocationListener,
        OnInfoWindowClickListener, OnMarkerClickListener, OnMapClickListener {

    private static View mView;
    private GoogleMap mMap;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        if(mView != null){
            ((ViewGroup)mView.getParent()).removeAllViews();
        }

        mView = inflater.inflate(R.layout.fragment_search_map, null);   

        if (mMap == null) {

            mf = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.fragment_searchMap);

            mMap = mf.getMap();
        }   

        return mView;
    }

}

Here is my LogCat,

10-03 15:58:08.473: W/dalvikvm(14911): threadid=1: thread exiting with
uncaught exception (group=0x40adc9f0) 
10-03 15:58:08.503: E/AndroidRuntime(14911): FATAL EXCEPTION: main 
10-03 15:58:08.503: E/AndroidRuntime(14911): android.view.InflateException: Binary XML file line #49: Error inflating class fragment 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at in.vs2.realestate.fragments.SearchMapFragment.onCreateView(SearchMapFragment.java:103)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1460)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:440)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.os.Handler.handleCallback(Handler.java:605) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.os.Handler.dispatchMessage(Handler.java:92) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.os.Looper.loop(Looper.java:137) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.app.ActivityThread.main(ActivityThread.java:4424) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at java.lang.reflect.Method.invokeNative(Native Method) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at java.lang.reflect.Method.invoke(Method.java:511) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584) 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at dalvik.system.NativeStart.main(Native Method) 
10-03 15:58:08.503: E/AndroidRuntime(14911): Caused by: java.lang.IllegalArgumentException: Binary XML file line #49: Duplicate id 0x7f050075, tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.SupportMapFragment 
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:290)
10-03 15:58:08.503: E/AndroidRuntime(14911):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
10-03 15:58:08.503: E/AndroidRuntime(14911):    ... 20 more
هل كانت مفيدة؟

المحلول

You are incorrectly adding SupportMapFragment into your fragment.

Please read about nested fragments.

When nesting fragments remember these things:

  • use getChildFragmentManager,
  • don't add SupportMapFragment in xml.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top