Cuando yo inicio de la actividad, que implementa el viewpager, el viewpager creado diversos fragmentos. Quiero usar diferentes diseños para cada fragmento, pero el problema es que viewpager sólo muestra dos diseños en el max (segunda disposición sobre todos los de el resto de los fragmentos después de la 1).

Aquí está el código para SwipeActivity que implementa el viewpager :

public class SwipeActivity extends FragmentActivity
{

    MyPageAdapter pageAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_swipe);
        pageAdapter = new MyPageAdapter(getSupportFragmentManager());
        ViewPager pager=(ViewPager)findViewById(R.id.pager);
        pager.setAdapter(pageAdapter);
        ActionBar bar = getActionBar();
        bar.setDisplayHomeAsUpEnabled(true);
    }
    /**
    * Custom Page adapter
    */
    private class MyPageAdapter extends FragmentPagerAdapter
    {
        public MyPageAdapter(FragmentManager fm)
        {
            super(fm);
        }
        @Override
        public int getCount()
        {
            return 5;
        }
        @Override
        public Fragment getItem(int position)
        {
            switch(position)
            {
                case 0: return new MyFragment();
                case 1: return SecondFragment.newInstance("asdasd");
                default : return RamFragment.newInstance("s");
            }
        }
     }
}

Aquí está el código para el fragmentos

public class MyFragment extends Fragment
{
   @Override
   public View onCreateView(LayoutInflater paramLayoutInflater, ViewGroup paramViewGroup,    Bundle paramBundle)
   {
     return paramLayoutInflater.inflate(R.layout.processorlayout, paramViewGroup, false);
   }
}

He utilizado 5 fragmentos como este, con diferentes diseños, pero el viewpager muestra sólo 2 en el max.

EDITAR : código para SecondFragment

public class SecondFragment extends Fragment
{
   public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";

  public static final SecondFragment newInstance(String paramString)
  {
    SecondFragment f = new SecondFragment();
    Bundle localBundle = new Bundle(1);
    localBundle.putString("EXTRA_MESSAGE", paramString);
    f.setArguments(localBundle);
    return f;
  }

  @Override
  public View onCreateView(LayoutInflater paramLayoutInflater, ViewGroup paramViewGroup, Bundle paramBundle)
  {
     return paramLayoutInflater.inflate(R.layout.motherboardlayout, paramViewGroup, false);
  }
}
InformationsquelleAutor Haxor | 2013-08-23

6 Comentarios

  1. 505

    Como este es un muy frecuentes pregunta, yo quería tomar el tiempo y esfuerzo para explicar el ViewPager con múltiples Fragmentos y Diseños en detalle. Aquí tienes.

    ViewPager con múltiples Fragmentos y archivos de Diseño – Cómo

    El siguiente es un ejemplo completo de cómo implementar un ViewPager
    con diferentes fragmento y Tipos diferentes de archivos de diseño.

    En este caso, tengo 3 Fragmento de clases, y un diseño diferente de archivo para cada clase. En el fin de mantener las cosas simples, la fragmento de diseños sólo difieren en su color de fondo. Por supuesto, cualquier archivo de diseño puede ser utilizado para los Fragmentos.

    FirstFragment.java tiene un naranja fondo del diseño, SecondFragment.java tiene un verde fondo del diseño y ThirdFragment.java tiene un rojo fondo del diseño. Además, cada Fragmento muestra un texto diferente, dependiendo de que clase es y qué instancia es.

    También ser consciente de que estoy usando el apoyo de la biblioteca del Fragmento:
    android.apoyo.v4.app.Fragmento

    MainActivity.java (Inicializa el Viewpager y tiene el adaptador para él como una clase interna). De nuevo una mirada a la las importaciones. Yo estoy usando la android.support.v4 paquete.

    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.view.ViewPager;
    public class MainActivity extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);     
    ViewPager pager = (ViewPager) findViewById(R.id.viewPager);
    pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
    }
    private class MyPagerAdapter extends FragmentPagerAdapter {
    public MyPagerAdapter(FragmentManager fm) {
    super(fm);
    }
    @Override
    public Fragment getItem(int pos) {
    switch(pos) {
    case 0: return FirstFragment.newInstance("FirstFragment, Instance 1");
    case 1: return SecondFragment.newInstance("SecondFragment, Instance 1");
    case 2: return ThirdFragment.newInstance("ThirdFragment, Instance 1");
    case 3: return ThirdFragment.newInstance("ThirdFragment, Instance 2");
    case 4: return ThirdFragment.newInstance("ThirdFragment, Instance 3");
    default: return ThirdFragment.newInstance("ThirdFragment, Default");
    }
    }
    @Override
    public int getCount() {
    return 5;
    }       
    }
    }

    activity_main.xml (El MainActivitys .archivo xml) – un simple archivo de diseño, sólo contiene el ViewPager que llena toda la pantalla.

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

    El Fragmento de clases, FirstFragment.java
    import android.apoyo.v4.app.Fragmento;

    public class FirstFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.first_frag, container, false);
    TextView tv = (TextView) v.findViewById(R.id.tvFragFirst);
    tv.setText(getArguments().getString("msg"));
    return v;
    }
    public static FirstFragment newInstance(String text) {
    FirstFragment f = new FirstFragment();
    Bundle b = new Bundle();
    b.putString("msg", text);
    f.setArguments(b);
    return f;
    }
    }

    first_frag.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_orange_dark" >
    <TextView
    android:id="@+id/tvFragFirst"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textSize="26dp"
    android:text="TextView" />
    </RelativeLayout>

    SecondFragment.java

    public class SecondFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.second_frag, container, false);
    TextView tv = (TextView) v.findViewById(R.id.tvFragSecond);
    tv.setText(getArguments().getString("msg"));
    return v;
    }
    public static SecondFragment newInstance(String text) {
    SecondFragment f = new SecondFragment();
    Bundle b = new Bundle();
    b.putString("msg", text);
    f.setArguments(b);
    return f;
    }
    }

    second_frag.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_green_dark" >
    <TextView
    android:id="@+id/tvFragSecond"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textSize="26dp"
    android:text="TextView" />
    </RelativeLayout>

    ThirdFragment.java

    public class ThirdFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.third_frag, container, false);
    TextView tv = (TextView) v.findViewById(R.id.tvFragThird);      
    tv.setText(getArguments().getString("msg"));
    return v;
    }
    public static ThirdFragment newInstance(String text) {
    ThirdFragment f = new ThirdFragment();
    Bundle b = new Bundle();
    b.putString("msg", text);
    f.setArguments(b);
    return f;
    }
    }

    third_frag.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_red_light" >
    <TextView
    android:id="@+id/tvFragThird"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textSize="26dp"
    android:text="TextView" />
    </RelativeLayout>

    El resultado final es el siguiente:

    El Viewpager tiene 5 Fragmentos, Fragmentos de 1 es de tipo FirstFragment, y muestra la first_frag.xml diseño, Fragmento 2 es de tipo SecondFragment y muestra la second_frag.xml y Fragmento de 3 a 5 son de tipo ThirdFragment y muestran el third_frag.xml.

    Cómo implementar un ViewPager con diferentes Fragmentos /Diseños

    De arriba se puede ver a los 5 Fragmentos entre los que puede ser conmutada a través de deslizar el dedo a la izquierda o a la derecha. Sólo un Fragmento puede ser visualizado en el mismo momento del curso.

    Por último, pero no menos importante:

    Recomiendo que utilice un constructor vacío en cada uno de sus
    Fragmento de clases.

    Lugar de entrega posibles parámetros a través del constructor, el uso de la newInstance(...) método y la Bundle para la entrega de los parámetros.

    De esta manera si se separa y se adjunta nuevamente el estado del objeto puede ser almacenada a través de los argumentos. Mucho como Bundles conectado a Intents.

    phi fue lo suficientemente amable como para señalar que el código de ejemplo está en GitHub, el cual puede ser visto aquí.

    • Añadido un constructor vacío a todo el fragmento de clases, se ha cambiado el método getItem. Todavía veo solo 2 presentaciones en todos los fragmentos
    • Ok. Para entender correctamente: tiene 5 Fragmentos en total, la 1ª y 2ª Fragmento son de clase MyFragment (1) y SecondFragment (2), los otros 3 los Fragmentos son de clase RamFragment? Y usted desea tener un diseño propio para MyFragment, un diseño propio para SecondFragment y un diseño propio para todos los RamFragments? Es eso correcto?
    • Sí, eso es lo que quiero. Incluso Si puedo cambiar el orden de los diseños como 1) Ramfragment 2)MyFragment 3)Secondfragment. 2 primeros diseños se esté trabajando correctamente, Pero desde el 3 de diseño de lo que yo veo es una copia de segundo diseño único.
    • Por favor, eche un vistazo a mi respuesta actualizada, he añadido un ejemplo completo y probado.
    • Se utiliza el soporte Fragmento? Aparte de eso, no sé bien.
    • hola @PhilippJahoda, gracias por el código,puedo usar tu código pero quiero establecer animación al cambiar de fragmento, me puede decir cómo se puede hacer eso? gracias.
    • Muchas gracias @Phillip Jahoda.. Se está trabajando 😉
    • gran respuesta, gracias. Me gustaría hablar de una cosa sin embargo, si el ViewPager se define en un Fragmento de getSupportChildFragmentManager() debe ser utilizado en lugar de getSupportFragmentManager() al crear el adaptador. De lo contrario, el código se rompe cuando la orientación se produce el cambio.
    • Sí, eso es correcto. Pero en mi ejemplo el ViewPager se define en una Actividad, y por lo tanto, getSupportFragmentManager() es la adecuada. Además, el método de getSupportChildFragmentManager() no existe, supongo que se refiere a getChildFragmentManager().
    • Estoy tratando de usar el código anterior, sin embargo, mi ViewPager no se está mostrando. Puedo por favor tener un poco de ayuda en este enlace: stackoverflow.com/questions/22499324/…
    • ¿Cómo puedo sustituir el primer fragmento de un nuevo fragmento de firstfragment por ejemplo, haga clic en el botón … quiero que pase característica debe estar allí, es decir, Si el año anterior deslice el dedo desde este nuevo fragmento de ir a la segunda fragmento..
    • Yo lo hice exactamente como lo hizo, pero con una diferencia, he utilizado un ActionBarActivity para mi MainActivity. Sucede que después de algunos golpes de la interfaz de usuario se congela. No se produce ningún error y la aplicación no choque sólo se congela. Ha tenido también algo como esto?
    • Si tengo android.apoyo.v4.vista.ViewPager y android.app.Fragmento, entonces ¿cómo podría yo escribir el adaptador. Se muestra algún error de compilación.
    • Usted puede utilizar el ViewPager con los nativos de los fragmentos cuando se utiliza la v13 paquete de apoyo. developer.android.com/reference/android/support/v13/app/…
    • Lo que si tenemos diferentes fragmentos con un nav cajón etc. y queremos mostrar un viewpager dentro de uno de esos fragmentos?
    • mismo, excepto que en uno de tus cajones fragmentos para sostener las necesidades de la viewpager
    • Bien, ¿qué error no Haxor hacer? Yo realmente no quiero cambiar mi estructura de código.
    • En MainActivity.java, ¿y si el fragmento del nombre de la clase es una variable? Me pueden ayudar con esta pregunta? stackoverflow.com/questions/25195481/…
    • ¿qué pasa si la altura de los fragmentos varían ?
    • como de Android Lollipop 5.0, es este sigue siendo válido?
    • En su MyPagerAdapter –> getItem(int pos) método de obtener siempre una nueva instancia de la meta fragmento (basado en el punto de venta valor). Así que cada vez que gire el dispositivo (cambio de orientación) el método getItem se invoca y los fragmentos se crean de nuevo y de nuevo. Pero que se almacenan en el fragmento del administrador sobre la creación. Creo que usted debe comprobar si ya están en el fragmento manager porque si no pierdes la memoria. Consulte pastebin.com/0bJc9mHA
    • Por alguna razón, aunque yo tengo el mismo código, no puedo hacer que funcione. Puedo crear 5 fragmentos de la misma clase con el newInstance() cada uno con un argumento diferente (por lo tanto la fuente de los datos), pero el segundo tiene exactamente el mismo contenido al igual que la primera. ¿Qué estoy haciendo mal?
    • Estoy recibiendo este error «no coinciden los tipos: no se puede convertir de XXXXShowAllFragment a Fragmento» en getItem(int posición).
    • sí, es todavía válido con Lollipop. Muchas gracias Philipp, es una elegante solución ! Es la única solución limpia que he encontrado para la implementación de un SupportMapFragment en un ViewPager, que también está en un Fragmento.
    • ¿por qué crear public static FirstFragment newInstance(String texto) { } me diga su razón de ser y que no creamos que lo que sucede?
    • Ejemplo de Código en Github basado en esta respuesta: github.com/KENJU/ViewPagersWithMultipleFragmentsSample
    • ¿Cómo capturar los eventos de clic en los fragmentos y cambiar la página de el viewpager?
    • Pero como @m1nd dijo, esto va a crear nuevo fragmento de instancia en cada uno de los config de cambio, es decir, cambio de orientación, y el uso de un código interno como en pegar vínculo pastebin.com/0bJc9mHA no es el mejor enfoque, y también no existe en el caso de que deseemos utilizar FragmentStatePagerAdapter
    • Gracias! Es el mejor tutorial que he encontrado!
    • Si quiero dejar de deslizar el dedo después de la tercera fragmento de ¿cómo podría hacerlo ?
    • donde es el adaptador???
    • ¿Cómo puedo cambiar de fragmentos de clic de botón?
    • esto es excelente,pero se puede saber ¿qué pasa si quiero adjuntar dinámica de fragmentos
    • Es mejor si puedo crear y almacenar Fragmentos ya (probablemente en Vadapter del constructor)? en lugar de crearlos en getItem()?
    • Perfecto! Muchas gracias, funciona perfectamente! Por cierto, aquí es una biblioteca para aquellos que quieren añadir indicadores a los puntos de vista: github.com/ongakuer/CircleIndicator
    • GENIO! Gracias, bro.
    • gran respuesta , esto me ayuda un montón 🙂
    • Increíble respuesta. Pero tengo una pregunta. Vamos a suponer que cada fragmento tiene una lista separada y quiero añadir una SearchView en MainActivity para la búsqueda de una palabra clave en todas las listas diferentes. ¿Cómo podría implementar esta SearchView botón para todos los fragmentos?

  2. 7

    Crear una matriz de puntos de vista y aplicarlo a: container.addView(viewarr[position]);

    public class Layoutes extends PagerAdapter {
    private Context context;
    private LayoutInflater layoutInflater;
    Layoutes(Context context){
    this.context=context;
    }
    int layoutes[]={R.layout.one,R.layout.two,R.layout.three};
    @Override
    public int getCount() {
    return layoutes.length;
    }
    @Override
    public boolean isViewFromObject(View view, Object object) {
    return (view==(LinearLayout)object);
    }
    @Override
    public Object instantiateItem(ViewGroup container, int position){
    layoutInflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View one=layoutInflater.inflate(R.layout.one,container,false);
    View two=layoutInflater.inflate(R.layout.two,container,false);
    View three=layoutInflater.inflate(R.layout.three,container,false);
    View viewarr[]={one,two,three};
    container.addView(viewarr[position]);
    return viewarr[position];
    }
    @Override
    public void destroyItem(ViewGroup container, int position, Object object){
    container.removeView((LinearLayout) object);
    }
    }
    • Podemos inflar la presentación en ViewPager por la creación de la matriz de la vista.
    • este código se usa para diseño único.
  3. 4

    El código para añadir fragmento

    public Fragment getItem(int position) {
    switch (position){
    case 0:
    return new Fragment1();
    case 1:
    return new Fragment2();
    case 2:
    return new Fragment3();
    case 3:
    return new Fragment4();
    default:
    break;
    }
    return null;
    }

    Crear un archivo xml para cada uno de los fragmentos decir para Fragment1, uso fragment_one.xml como el archivo de diseño, utilice el siguiente código en Fragment1 archivo java.

    public class Fragment1 extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_one, container, false);
    return view;
    }
    }

    Más tarde, usted puede hacer las correcciones necesarias.. Que trabajó para mí.

  4. 2

    Este también está bien:

    <android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/viewPager"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
    public class MainActivity extends FragmentActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
    ViewPager pager = (ViewPager) findViewById(R.id.viewPager);
    pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
    }
    }
    public class FragmentTab1 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragmenttab1, container, false);
    return rootView;
    }
    }
    class MyPagerAdapter extends FragmentPagerAdapter{
    public MyPagerAdapter(FragmentManager fragmentManager){
    super(fragmentManager);
    }
    @Override
    public android.support.v4.app.Fragment getItem(int position) {
    switch(position){
    case 0:
    FragmentTab1 fm =   new FragmentTab1();
    return fm;
    case 1: return new FragmentTab2();
    case 2: return new FragmentTab3();
    }
    return null;
    }
    @Override
    public int getCount() {
    return 3;
    }
    }
    <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" >
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="@string/Fragment1" />
    </RelativeLayout>
  5. 2

    Básica ViewPager Ejemplo

    Esta respuesta es una simplificación de la documentación, este tutorial, y el aceptó responder. Su propósito es conseguir un trabajo ViewPager en marcha lo más rápidamente posible. Más ediciones se puede hacer después de eso.

    Cómo implementar un ViewPager con diferentes Fragmentos /Diseños

    XML

    Agregar el xml diseños para la actividad principal y para cada página (fragmento). En nuestro caso estamos usando solo un fragmento de diseño, pero si usted tiene diferentes diseños en las diferentes páginas, a continuación, sólo hacer uno para cada uno de ellos.

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <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"
    tools:context="com.example.verticalviewpager.MainActivity">
    <android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
    </RelativeLayout>

    fragment_one.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <TextView
    android:id="@+id/textview"
    android:textSize="30sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true" />
    </RelativeLayout>

    Código

    Este es el código de la actividad principal. Incluye la PagerAdapter y FragmentOne como las clases internas. Si estas demasiado grande o va a reutilizar en otros lugares, entonces se puede mover a sus propias clases separadas.

    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentPagerAdapter;
    import android.support.v4.view.ViewPager;
    public class MainActivity extends AppCompatActivity {
    static final int NUMBER_OF_PAGES = 2;
    MyAdapter mAdapter;
    ViewPager mPager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mAdapter = new MyAdapter(getSupportFragmentManager());
    mPager = findViewById(R.id.viewpager);
    mPager.setAdapter(mAdapter);
    }
    public static class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fm) {
    super(fm);
    }
    @Override
    public int getCount() {
    return NUMBER_OF_PAGES;
    }
    @Override
    public Fragment getItem(int position) {
    switch (position) {
    case 0:
    return FragmentOne.newInstance(0, Color.WHITE);
    case 1:
    //return a different Fragment class here
    //if you want want a completely different layout
    return FragmentOne.newInstance(1, Color.CYAN);
    default:
    return null;
    }
    }
    }
    public static class FragmentOne extends Fragment {
    private static final String MY_NUM_KEY = "num";
    private static final String MY_COLOR_KEY = "color";
    private int mNum;
    private int mColor;
    //You can modify the parameters to pass in whatever you want
    static FragmentOne newInstance(int num, int color) {
    FragmentOne f = new FragmentOne();
    Bundle args = new Bundle();
    args.putInt(MY_NUM_KEY, num);
    args.putInt(MY_COLOR_KEY, color);
    f.setArguments(args);
    return f;
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mNum = getArguments() != null ? getArguments().getInt(MY_NUM_KEY) : 0;
    mColor = getArguments() != null ? getArguments().getInt(MY_COLOR_KEY) : Color.BLACK;
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_one, container, false);
    v.setBackgroundColor(mColor);
    TextView textView = v.findViewById(R.id.textview);
    textView.setText("Page " + mNum);
    return v;
    }
    }
    }

    Terminado

    Si has copiado y pegado los tres archivos anteriores a su proyecto, usted debe ser capaz de ejecutar la aplicación y ver el resultado en la animación de arriba.

    Pasando

    Hay muy pocas cosas que usted puede hacer con ViewPagers. Ver los siguientes enlaces para empezar:

  6. 0

    Crear nuevas instancias en sus fragmentos y hacer como en su Actividad

     private class SlidePagerAdapter extends FragmentStatePagerAdapter {
    public SlidePagerAdapter(FragmentManager fm) {
    super(fm);
    }
    @Override
    public Fragment getItem(int position) {
    switch(position){
    case 0:
    return Fragment1.newInstance();
    case 1:
    return Fragment2.newInstance();
    case 2:
    return Fragment3.newInstance();
    case 3:
    return Fragment4.newInstance();
    default: break;
    }
    return null;
    }

Dejar respuesta

Please enter your comment!
Please enter your name here