ViewPager no desliza con FragmentPagerAdapter

Tengo dos fragmentos en una actividad, en el modo de retrato el primero (ListFragment) se muestra cuando el usuario hace clic en algún lugar en ListView el segundo se muestra, mientras que en modo horizontal ambos fragmentos se muestran. Sin embargo quiero usar la función de deslizar mientras está en el modo de retrato y que debe mostrar el siguiente fragmento como este ejemplo ,

Esta es mi principal actividad laucher que extiende FragmentActivity,

package com.myexample.fragmentdemoexample; import java.util.LinkedList; import java.util.List; import java.util.Vector; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.ListFragment; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.ViewGroup; public class MainFragmentActivity extends FragmentActivity { private static int NUM_ITEMS = 4; MyAdapter mAdapter; ViewPager mPager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mPager = (ViewPager) findViewById(R.id.pager); instantiateFragments(); Log.i("MainFragmentActivity", "MainFragmentActivity is Created"); } public void instantiateFragments() { List<Fragment> fragments = new Vector<Fragment>(); fragments.add(Fragment.instantiate(this, MyListFragment.class.getName())); fragments.add(Fragment.instantiate(this, DetailFragment.class.getName())); mAdapter = new MyAdapter(getSupportFragmentManager(), fragments); mPager.setAdapter(mAdapter); mPager.setCurrentItem(0); } public class MyAdapter extends FragmentPagerAdapter { private FragmentManager frmanager; private List<Fragment> fragments; public MyAdapter(FragmentManager fm, List<Fragment> fragList) { super(fm); frmanager = fm; fragments = fragList; } @Override public int getCount() { return NUM_ITEMS; } @Override public Fragment getItem(int position) { return fragments.get(position); } } } 

Este es mi archivo layout / main.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.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" > </android.support.v4.view.ViewPager> <fragment android:id="@+id/listFragment" android:layout_width="150dip" android:layout_height="match_parent" class="com.myexample.fragmentdemoexample.MyListFragment" android:tag="listFragment" > </fragment> <fragment android:id="@+id/detailFragment" android:layout_width="match_parent" android:layout_height="match_parent" class="com.myexample.fragmentdemoexample.DetailFragment" android:tag="detailFragment" > <!-- Preview: layout=@layout/details --> </fragment> </LinearLayout> 

Y /layout-port/main.xml contiene

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" > </android.support.v4.view.ViewPager> <fragment android:id="@+id/listFragment" android:layout_width="match_parent" android:layout_height="match_parent" class="com.myexample.fragmentdemoexample.MyListFragment" /> </LinearLayout> 

No sé por qué View Pager no está pasando al siguiente fragmento … ¿Cómo puedo hacer eso? Estoy utilizando Fragment API por primera vez .. así que por favor dar algunos punteros a la dirección correcta.

NOTA Para otros archivos vea esta pregunta

Finalmente después de horas de harasment el problema fue solucionado quitando las etiquetas del fragmento del archivo principal de la disposición. Ahora main.xml contiene

 <?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.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" > </android.support.v4.view.ViewPager> </LinearLayout> 

Esto podría ser útil para otros con problemas similares …

A pesar de que no responde a la pregunta directamente, pero tiene respuesta sobre un problema similar que he enfrentado. Puede ser que va a ayudar a otros que tienen problemas similares.

Si tienes un diseño como

 <AppBarLayout> <ToolBar /> <TabLayout /> <ViewPager /> </AppBarLayout> 

El error aquí es ViewPager no debe estar dentro de AppBarLayout . Así que cambie su código a:

 <AppBarLayout> <ToolBar /> <TabLayout /> </AppBarLayout> <ViewPager /> 
  • ¿Cómo usar dos tamaños de fuente diferentes para texto de botón en Android?
  • Elemento expandible en la lista de Android
  • ¿El ancho / altura de diseño relativo no funciona de forma programática?
  • Android - Botón con imagen giratoria / giratoria de "carga" cuando se pulsa
  • Configuración de la imagen de fondo de la vista web a un gráfico de recursos en Android
  • GetHeight para View que tiene visibilidad = ido
  • Cómo diseñar una ruleta en Android
  • Creación de un botón de retroceso personalizado en android
  • Tamaños de iconos Android
  • Ver fuera de los límites de un cuadro de diálogo
  • Cambiar el color de fondo de ActionBarSherlock
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.