Cómo reemplazar un ViewPager con un fragmento

Tengo el siguiente diseño

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> 

Everyting es workinf bien, pero quiero reemplazar el ViewPager con un fragmento

 getSupportFragmentManager().beginTransaction() .replace(R.id.view_pager, new CustomFragment()) .commit(); 

Esto no es repacing ViewPager ¿qué debo hacer ???

Puede crear un fragmento que contiene el ViewPager y , a continuación, reemplazar ese fragmento.

 public class ViewPagerContainerFragment extends Fragment { private ViewPager mViewPager; public ViewPagerContainerFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.view_pager_container_fragment, container, false); // Set up the ViewPager, attaching the adapter and ... mViewPager = (ViewPager) root.findViewById(R.id.viewPager); // do other stuff... return root; } } 

View_pager_container_fragment.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/rlMain" android:layout_width="fill_parent" android:layout_height="fill_parent"> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </RelativeLayout> 

El archivo .xml de su actividad:

  <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent"> </FrameLayout> 

Y luego reemplazar fragmentos como este:

Agregar el ViewPagerContainerFragment al diseño de las actividades:

 getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, new ViewPagerContainerFragment()) .commit(); 

Y en algún lugar más adelante en código: (si desea – reemplazar el ViewPagerFragment con otro fragmento)

 getSupportFragmentManager().beginTransaction() .replace(R.id.content_frame, new CustomFragment()) .commit(); 

Asegúrese de no crear fugas de memoria y de configurar correctamente su adaptador.

  • android.R.id.content como contenedor para Fragment
  • ¿Cómo se manejan las transacciones de fragmentos cuando el estado de la actividad principal está destinado a ser guardado?
  • La biblioteca de la barra de acciones de AppCompat no muestra fragmentos añadidos
  • Fragmento de Android La transacción con animación provoca que el flash blanco
  • El artículo de DrawerLayout hace clic - ¿Cuándo es el momento adecuado para reemplazar el fragmento?
  • Android: ¿Cuándo es apropiado utilizar FragmentTransaction.remove?
  • FragmentTransacation con diapositiva en / out animación en> 4 rendimiento
  • FragmentManager.getFragmens (). Size () no disminuyen después de FragmentTransaction.remove (Fragment)
  • Cambiar el orden z de Fragmentos durante la FragmentTransaction en curso
  • FragmentTransaction.replace reemplaza sólo el primer Fragment en un contenedor
  • Mover fragmento de Android a un contenedor diferente No se puede cambiar el identificador de contenedor de fragmento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.