2012-05-27 3 views
0

에 내가 여기 자습서 Android Action Bar강제로 닫습니다 (단편 중복) recreateView이 조각

하고 처음에는 ArtistFragment.class

public class ArtistFragment extends Fragment { 

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

     View fragView = inflater.inflate(R.layout.main_fragment, container, false); 
     return fragView; 
    } 
} 

의를 수행 할 때 내가 다른 전환 할 때, 그것은보기를 표시 탭 Artist 선택하지만, 탭을 누른 다음 Artist 탭으로 다시 전환하십시오. 강제 종료가 발생합니다.

main_fragment.xml

<?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:orientation="horizontal" 
    android:padding="10dp" 
    android:id="@+id/frags" > 

    <fragment 
     android:name="com.android.custom.FragmentLeft" 
     android:id="@+id/fragment_left" 
     android:layout_weight="0.25" 
     android:layout_width="0dp" 
     android:layout_height="match_parent"/> 
    <fragment 
     android:name="com.android.custom.FragmentRight" 
     android:id="@+id/fragment_right" 
     android:layout_weight="0.75" 
     android:layout_width="0dp" 
     android:layout_height="match_parent"/> 

</LinearLayout> 

로그 캣

05-27 11:58:36.398: E/AndroidRuntime(4216): FATAL EXCEPTION: main 
05-27 11:58:36.398: E/AndroidRuntime(4216): android.view.InflateException: Binary XML file line #9: Error inflating class fragment 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:724) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.view.LayoutInflater.inflate(LayoutInflater.java:479) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.view.LayoutInflater.inflate(LayoutInflater.java:391) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at com.android.custom.ArtistFragment.onCreateView(ArtistFragment.java:20) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:776) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1133) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.app.BackStackRecord.run(BackStackRecord.java:628) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1309) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.app.FragmentManagerImpl$1.run(FragmentManager.java:398) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.os.Handler.handleCallback(Handler.java:587) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.os.Handler.dispatchMessage(Handler.java:92) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.os.Looper.loop(Looper.java:132) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.app.ActivityThread.main(ActivityThread.java:4123) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at java.lang.reflect.Method.invoke(Method.java:491) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at dalvik.system.NativeStart.main(Native Method) 
05-27 11:58:36.398: E/AndroidRuntime(4216): Caused by: java.lang.IllegalArgumentException: Binary XML file line #9: Duplicate id 0x7f080011, tag null, or parent id 0x7f080010 with another fragment for com.android.custom.FragmentLeft 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.app.Activity.onCreateView(Activity.java:4182) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:664) 
05-27 11:58:36.398: E/AndroidRuntime(4216):  ... 18 more 

답변

0

R.layout.main_fragment이 그 안에 두 조각이 있는가? Fragment 안에 Fragment을 넣을 수는 없습니다 ... Activity 안에 있어야합니다. 대신 artist_fragment.xml을 부풀려 야합니까?

0

랩 (나는 무슨 일이 일어나고 생각입니다) 오리엔테이션이나 활동 변화에 대한 모든 것을 다시 시도하는 프레임 워크를 방지 할 수

if(savesInstanceState == null) { 
    // your code here 
} 

이있는 onCreate 방법의 코드. (대부분의 경우) 모든 활동에서 이것을 사용해야하므로 대부분의 사람들이 기대하는 것처럼 프레임 워크가 작동 할 수 있습니다.