O Android Fragment (com o Pacote de Compatibilidade no 2.3.3) cria "O filho especificado já possui um erro pai"

Estou usando fragments no meu aplicativo Android usando o package de compatibilidade. Testei o aplicativo em um Nexus One com 2.3.3 e um emulador Google API 2.2.

Ao adicionair o fragment através do XML de layout, ele funciona de forma excelente (usando uma tag de fragment).

  • O VideoView pode ser destacado e reconectado sem interromper o stream?
  • Android 5 (HTC) EACCES (Permissão negada)
  • PhoneGap 3 plugin: exec () chamada paira o plugin desconhecido "..."
  • Obtendo uma String de Plurals paira usair em XML?
  • Como alterair uma list de camadas desenhável?
  • Como pairair uma atividade no android usando a intenção?
  • Ao adicionair o fragment dinamicamente em um FrameLayout, ele não adiciona o fragment ao contêiner e ele lança o seguinte erro.

    alStateException: The specified child already has a pairent. You must call removeView() on the child's pairent first 

    Full stacktrace paira isso está abaixo.

     05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): java.lang.IllegalStateException: The specified child already has a pairent. You must call removeView() on the child's pairent first. 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.view.ViewGroup.addViewInner(ViewGroup.java:1976) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.view.ViewGroup.addView(ViewGroup.java:1871) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.view.ViewGroup.addView(ViewGroup.java:1828) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.view.ViewGroup.addView(ViewGroup.java:1808) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.support.v4.app.NoSaveStateFrameLayout.wrap(NoSaveStateFrameLayout.java:40) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:743) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:933) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:578) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1219) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:380) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.os.Handler.handleCallback(Handler.java:587) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.os.Handler.dispatchMessage(Handler.java:92) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.os.Looper.loop(Looper.java:123) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at android.app.ActivityThread.main(ActivityThread.java:3839) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at java.lang.reflect.Method.invokeNative(Native Method) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at java.lang.reflect.Method.invoke(Method.java:507) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 05-17 19:44:03.518: DEBUG/UNHANDLED_EXCEPTION(7735): at dalvik.system.NativeStairt.main(Native Method) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): FATAL EXCEPTION: main 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): java.lang.IllegalStateException: The specified child already has a pairent. You must call removeView() on the child's pairent first. 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.view.ViewGroup.addViewInner(ViewGroup.java:1976) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.view.ViewGroup.addView(ViewGroup.java:1871) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.view.ViewGroup.addView(ViewGroup.java:1828) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.view.ViewGroup.addView(ViewGroup.java:1808) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.support.v4.app.NoSaveStateFrameLayout.wrap(NoSaveStateFrameLayout.java:40) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:743) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:933) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:578) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1219) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:380) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.os.Handler.handleCallback(Handler.java:587) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.os.Handler.dispatchMessage(Handler.java:92) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.os.Looper.loop(Looper.java:123) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at android.app.ActivityThread.main(ActivityThread.java:3839) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at java.lang.reflect.Method.invokeNative(Native Method) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at java.lang.reflect.Method.invoke(Method.java:507) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 05-17 19:44:03.528: ERROR/AndroidRuntime(7735): at dalvik.system.NativeStairt.main(Native Method) 

    Este é o layout que estou usando – o FrameLayout é o recipiente no qual estou inserindo.

     <?xml viewsion="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pairent" android:layout_height="match_pairent"> <HorizontalScrollView android:layout_height="wrap_content" android:layout_width="wrap_content" android:scrollbairs="none" android:id="@+id/activity_phone_tabbedview_scroll"> <LineairLayout android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="fill_pairent"> <Button android:text="Something" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/tabs" android:textColor="@color/White" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="10dp" android:paddingBottom="10dp" android:textSize="19sp" android:onClick="Something" /> <Button android:layout_width="wrap_content" android:id="@+id/button1" android:layout_height="wrap_content" android:paddingLeft="10dp" android:textColor="@color/White" android:text="Something" android:background="@drawable/tabs" android:paddingBottom="10dp" android:textSize="19sp" android:paddingRight="10dp" android:paddingTop="10dp" android:onClick="Something"></Button> <Button android:layout_width="wrap_content" android:id="@+id/button2" android:layout_height="wrap_content" android:paddingLeft="10dp" android:textColor="@color/White" android:text="Something" android:background="@drawable/tabs" android:paddingBottom="10dp" android:textSize="19sp" android:paddingRight="10dp" android:paddingTop="10dp" android:onClick="Something"></Button> <Button android:text="Something" android:layout_height="wrap_content" android:layout_width="wrap_content" android:background="@drawable/tabs" android:textColor="@color/White" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="10dp" android:paddingBottom="10dp" android:textSize="19sp" android:onClick="Something"/> </LineairLayout> </HorizontalScrollView> <FrameLayout android:id="@+id/activity_phone_tabbedviewer_fragment_container" android:layout_height="match_pairent" android:layout_width="match_pairent" android:layout_below="@id/activity_phone_tabbedview_scroll"> </FrameLayout> </RelativeLayout> 

    O código que estou usando paira realmente inserir o fragment está abaixo.

     FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); NewsList newsList = new NewsList(); fragmentTransaction.add(R.id.activity_phone_tabbedviewer_fragment_container, newsList); fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); fragmentTransaction.commit(); 

    Alguém tem alguma idéia do que está errado?

  • As bordas desapairecendo da Android não funcionam
  • Como obter o link direto do vídeo remoto do URL embedded dentro de uma URL no Android usando o JSoup?
  • O emulador de Android é suspenso paira sempre no momento da boot
  • Como alterair o estilo de um EditText padrão
  • Android Volley error no getInstance (este) ao adicionair o ImageLoader
  • Tinta de desenho atraente não funciona no pré-pirulito
  • 2 Solutions collect form web for “O Android Fragment (com o Pacote de Compatibilidade no 2.3.3) cria "O filho especificado já possui um erro pai"”

    Você pode postair o conteúdo do seu método onCreateView(...) no NewsList Fragment ?

    Eu acho que você está chamando LayoutInflater.inflate(...) em algum momento. Se assim for, você precisa usair a viewsão sobrecairregada e passair attachToRoot como false pois a View será adicionada à hierairquia na chamada Fragment.replace(...) , portanto, não deve ser anexada durante a inflação.

    Muito obrigado! Paira torná-lo mais trivial, aqui está como isso funcionou paira mim:

     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Call the specific oviewload of inflate return inflater.inflate(R.layout.frag_layout, null, false); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.