2014-11-12 4 views
1

탭보기에서지도 조각을 사용하고 있습니다. 첫 번째 및 두 번째 탭에서 목록보기를 표시하지만지도 조각을 사용하여 마지막 탭에 표시합니다. 처음으로 마지막 탭을 클릭하면 올바른지도보기가 있지만 앱이 두 번째로 충돌하는 경우 처리하는 방법을 알려주세요. 오류가지도의 오류 표 형식의 단편

11-12 17:53:26.794: E/AndroidRuntime(10174): FATAL EXCEPTION: main 
11-12 17:53:26.794: E/AndroidRuntime(10174): android.view.InflateException: Binary XML file line #118: Error inflating class fragment 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at competent.groove.thegroove.partypartner.Party_Partner_Confirm_Fragment.onCreateView(Party_Partner_Confirm_Fragment.java:62) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1291) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:672) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:446) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.os.Handler.handleCallback(Handler.java:605) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.os.Handler.dispatchMessage(Handler.java:92) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.os.Looper.loop(Looper.java:137) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.app.ActivityThread.main(ActivityThread.java:4456) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at java.lang.reflect.Method.invokeNative(Native Method) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at java.lang.reflect.Method.invoke(Method.java:511) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at dalvik.system.NativeStart.main(Native Method) 
11-12 17:53:26.794: E/AndroidRuntime(10174): Caused by: java.lang.IllegalArgumentException: Binary XML file line #118: Duplicate id 0x7f060208, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.app.Activity.onCreateView(Activity.java:4248) 
11-12 17:53:26.794: E/AndroidRuntime(10174): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673) 
11-12 17:53:26.794: E/AndroidRuntime(10174): ... 20 more 

입니다 그리고 레이아웃은 아래와 같이 대신지도 조각의 하나의 LinearLayout을 추가하여 XML 파일에,

<?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" > 

     <fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.MapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     class="com.google.android.gms.maps.MapFragment" > 
    </fragment> 

</RelativeLayout> 
+0

당신은 부 풀리거나 조각 내부 또는 활동 내부에 맵핑합니까? –

+0

조각 안에 있습니다. 난했을 OncreateView에서는 프래그먼트 – Aman

+0

, \t 경우 (GoogleMap으로 == NULL) { \t GoogleMap으로 = ((MapFragment가) getActivity(). getFragmentManager(). findFragmentById ( R.id.map \t)).하여 getMap (); \t \t //지도가 성공적 여부 \t 생성되어 있는지 확인하는 경우 (GoogleMap으로 == NULL) { \t Toast.makeText (getActivity(), \t "죄송합니다!지도를 만들 수 없습니다", Toast.LENGTH_SHORT) \t .show(); \t} \t} – Aman

답변

0

한 일을 할 수 있습니다 : 다음

<LinearLayout 
     android:id="@+id/lnrMap" 
     android:layout_width="match_parent" 
     android:layout_height="Wrap_content" 
     android:orientation="vertical" 
     android:visibility="visible" > 

당신의 조각에 :

private LinearLayout lnrMap; 
private SupportMapFragment mapFragment; 
private Timer t = null; 

    lnrMap = (LinearLayout)fragmentView.findViewById(R.id.lnrMap); 
    mapFragment = new SupportMapFragment(); 
    addFragment(lnrMap.getId(), mapFragment); 
    t = new Timer(); 
       t.schedule(new TimerTask() { 

        @Override 
        public void run() { 
         getActivity().runOnUiThread(new Runnable() { 

          @Override 
          public void run() { 
           try { 

            googleMap = mapFragment.getExtendedMap(); 

            mapFragment.getView().setClickable(false); 
            if (googleMap != null) { 
             googleMap.getUiSettings().setZoomControlsEnabled(false); 
             googleMap.getUiSettings().setCompassEnabled(false); 
             googleMap.getUiSettings().setZoomGesturesEnabled(false); 
             googleMap.getUiSettings().setScrollGesturesEnabled(false); 
             googleMap.getUiSettings().setRotateGesturesEnabled(false); 
             googleMap.getUiSettings().setTiltGesturesEnabled(false); 
             googleMap.animateCamera(CameraUpdateFactory.zoomTo(6)); 

             t.cancel(); 
            } 
           } catch (Exception e) { 
           } 

          } 
         }); 

        } 
       }, 0, 500); 


//addFragment() method: 

public void addFragment(int layoutId, Fragment fragment) { 
     FragmentManager fm = getChildFragmentManager(); 
     FragmentTransaction ft = fm.beginTransaction(); 
     ft.replace(layoutId, fragment); 
     ft.commit(); 
    }