0

Hy 얘들 아,SupportMapFragment XML 오류

내지도에 SupportMapFragment를 사용하여 응용 프로그램에로드하려고합니다. 어떤 일이 발생합니까? 전체 화면을 차지하는 단순한 맵이 아니라 특정 레이아웃을 사용하려고합니다. 나는이 XML을 얻을 내 현재 활동에 조각을 추가하려고하면

import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.example.captoom.R; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 

public class LocationFragment extends SupportMapFragment { 

    private GoogleMap map=null; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.preview_location, container, false); 

     SupportMapFragment fragment = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.mapview); 
     setMapp(fragment.getMap()); 
     return v; 
    } 

    public GoogleMap getMapp() { 
     return map; 
    } 

    public void setMapp(GoogleMap map) { 
     this.map = map; 
    } 
} 

:이 같은 확장에 의해 내 특정 SupportMapFragment 클래스를 만들었습니다

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/greenish" 
    android:orientation="vertical" 
    android:id="@+id/location_stuff" > 

    <RelativeLayout 
     android:id="@+id/location_header" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.7" 
     android:background="@color/greenish" > 

     <RelativeLayout 
      android:id="@+id/cancel_btn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="20dp" 
      android:background="@drawable/done_rounded_btn" 
      android:gravity="center" > 

      <TextView 
       android:id="@+id/retake_txt" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:layout_marginTop="10dp" 
       android:gravity="center" 
       android:paddingLeft="7dp" 
       android:paddingRight="7dp" 
       android:text="@string/cancel" 
       android:textAllCaps="true" 
       android:textColor="#FFFFFF" 
       android:textSize="16sp" /> 
     </RelativeLayout> 

     <TextView 
      android:id="@+id/location_txt" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:gravity="center_vertical" 
      android:text="@string/location_map" 
      android:textAllCaps="true" 
      android:textColor="@color/done_color" 
      android:textSize="16sp" /> 

    </RelativeLayout> 

    <fragment 
     android:id="@+id/mapview" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="5.6" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     class="com.google.android.gms.maps.LocationFragment" /> 

    <RelativeLayout 
     android:id="@+id/save_location_layout" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:background="@color/greenish" > 

     <LinearLayout 
      android:id="@+id/delete_btn" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_marginLeft="25dp" 
      android:layout_marginRight="25dp" 
      android:layout_centerVertical="true" 
      android:background="@drawable/done_rounded_btn" 
      android:orientation="horizontal" 
      android:paddingBottom="7dip" 
      android:paddingTop="7dip" 
      android:weightSum="7" > 

      <TextView 
       android:id="@+id/delete_txt" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="6" 
       android:background="@null" 
       android:paddingLeft="10dp" 
       android:text="@string/save_location" 
       android:textColor="@color/white" 
       android:textAllCaps="true" 
       android:textSize="18sp" /> 

      <ImageView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_weight="1" 
       android:contentDescription="@string/hello_world" 
       android:paddingLeft="10dp" 
       android:paddingRight="10dp" 
       android:src="@drawable/input_map_white" /> 
     </LinearLayout> 
    </RelativeLayout> 

</LinearLayout> 

: 여기

은 XML이다 팽창하는 오류.

나는이 같은 조각을 추가하려고 : 도움의 모든 종류는 매우 감사

07-30 17:57:24.144: E/AndroidRuntime(8231): FATAL EXCEPTION: main 
07-30 17:57:24.144: E/AndroidRuntime(8231): android.view.InflateException: Binary XML file line #55: Error inflating class fragment 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:710) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:752) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at ro.gebs.captoom.fragments.LocationFragment.onCreateView(LocationFragment.java:19) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1066) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:299) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:682) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:752) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at ro.gebs.captoom.fragments.LocationFragment.onCreateView(LocationFragment.java:19) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.os.Handler.handleCallback(Handler.java:615) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.os.Handler.dispatchMessage(Handler.java:92) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.os.Looper.loop(Looper.java:137) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.app.ActivityThread.main(ActivityThread.java:4921) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at java.lang.reflect.Method.invoke(Method.java:511) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at dalvik.system.NativeStart.main(Native Method) 
07-30 17:57:24.144: E/AndroidRuntime(8231): Caused by: java.lang.IllegalArgumentException: Binary XML file line #55: Duplicate id 0x7f06009a, tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.LocationFragment 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:285) 
07-30 17:57:24.144: E/AndroidRuntime(8231):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:682) 

:

LocationFragment mMapFragment = new LocationFragment(); 
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
fragmentTransaction.add(mMapFragment,null); 
fragmentTransaction.commit(); 

다음은 오류 로그입니다.

감사합니다.

+0

당신은 당신이 우리가 당신을 도울 수 있도록 얻을 오류를 표시 할 수 있습니다하세요? – AndroidDev

+0

내 게시물을 오류 로그 –

+0

으로 업데이트했습니다. Android 빌드가 Google API 플랫폼을 타겟팅합니까? – AndroidDev

답변

2

을 모두 삭제하면 onDestroyView()에서 중첩 된 모든 조각을 수정할 수 있습니다.

public void onDestroyView() { 
     super.onDestroyView(); 
     Fragment fragment = (getFragmentManager().findFragmentById(R.id.map)); 
     FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); 
     ft.remove(fragment); 
     ft.commit(); 
} 

그리고 onCreateView에서 평소을 팽창()

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.map, container, false); 
} 
+0

솔루션 주셔서 감사! –

+0

다행 내가 도왔 : D – AndroidDev

+0

분리/첨부 조각을 때 작동하지 않습니다 –

관련 문제