Supongo que el problema con el que se está encontrando es que no hay una vista inflada para agregar el fragmento porque el fragmento original, FRAG4_TAG, no se ha inflado antes de intentar agregarlo.
Puede pasar suficiente información a FRAG4_TAG en los argumentos para hacerle saber que debe crear y agregar un fragmento (o todos los fragmentos que necesite) a sí mismo durante su estado en CreateView, después de que la vista se haya inflado. ..
la disposición para la actividad ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="MyActivity"/>
<LinearLayout
android:orientation="vertical"
android:id="@+id/main_frag_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
la actividad ...
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment fragOne = new MyFragment();
Bundle arguments = new Bundle();
arguments.putBoolean("shouldYouCreateAChildFragment", true);
fragOne.setArguments(arguments);
ft.add(R.id.main_frag_container, fragOne);
ft.commit();
}
}
la disposición para el fragmento ...
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="20dp">
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Some fragment"/>
<LinearLayout
android:orientation="vertical"
android:id="@+id/frag_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
El fragmento ...
public class MyFragment extends Fragment {
@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.frag_layout, container, false);
boolean shouldCreateChild = getArguments().getBoolean("shouldYouCreateAChildFragment");
if (shouldCreateChild) {
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
fm.beginTransaction();
Fragment fragTwo = new MyFragment();
Bundle arguments = new Bundle();
arguments.putBoolean("shouldYouCreateAChildFragment", false);
fragTwo.setArguments(arguments);
ft.add(R.id.frag_container, fragTwo);
ft.commit();
}
return layout;
}
}
Este ejemplo cubre el caso en que es necesario agregar dinámicamente fragmentos a un fragmento que no haya sido inflado y se añade a la jerarquía. Agregar un fragmento a un fragmento que ya ha sido inflado y agregado a la jerarquía es tan simple como simplemente especificar el contenedor de fragmentos de destino que desea agregar por ID como lo haría normalmente.
¿lo intentó? No creo que si es posible, el fragmento no puede contener otro fragmento ... use Views para eso (me enfrento al mismo isuse ... ya tengo fragmentos, llamemos a LeftListView y DetailsPane ahora que wana tiene ViewPager en DetailsPane. ... entonces construyo un fragmento para cada página del Buscapersonas ... pero siempre termina con un error en el compromiso de la transacción ... después de algunas investigaciones encontré este http: // stackoverflow.com/questions/5268361/fragments-in-action-bar-tab-fragments – Selvin
Sí lo he intentado, pero no fue exitoso. Gracias por comentar – Waypoint
http://stackoverflow.com/questions/7700226/display-fragment-viewpager-within-a-fragment/7700305#7700305, compruebe si esta solución funciona para usted. es un trabajo para insertar el fragmento de uso dentro de otro fragmento. –