viewpager studio sectionspageradapter fragments example android android-viewpager

sectionspageradapter - viewpager android studio



Android ViewPager: muestra la vista previa de la página a la izquierda y a la derecha (5)

En 2017, dicho comportamiento también se puede lograr fácilmente mediante el uso de RecyclerView con PagerSnapHelper (agregado en la versión 25.1.0 de la biblioteca de soporte v7): 

Hace algún tiempo necesité una característica parecida a la de un visor y preparé una pequeña biblioteca:

MetalRecyclerPagerView : puedes encontrar todo el código junto con ejemplos allí.

Principalmente consiste en un solo archivo de clase: MetalRecyclerViewPager.java (y dos xmls: attrs.xml e ids.xml ).

Espero que ayude a alguien y ahorrará algunas horas :)

Estoy usando ViewPager de Android. Lo que quiero hacer es mostrar una vista previa de la página tanto a la izquierda como a la derecha. He visto donde puedo usar un pageMargin negativo para mostrar una vista previa del lado derecho.

setPageMargin(-100);

¿Hay alguna forma de que pueda mostrar una vista previa del lado izquierdo también? Es básicamente algo similar al widget de la galería que estoy buscando.


La respuesta de @JijuInduchoodan es perfecta y funciona. Sin embargo, dado que soy relativamente nuevo en Android, me tomó un tiempo entenderlo y configurarlo correctamente. Por lo tanto, estoy publicando esta respuesta para referencia futura y ayudar a cualquier otra persona que esté en los mismos zapatos que yo.

if (viewPager == null) { // Initializing view pager viewPager = (ViewPager) findViewById(R.id.vpLookBook); // Disable clip to padding viewPager.setClipToPadding(false); // set padding manually, the more you set the padding the more you see of prev & next page viewPager.setPadding(40, 0, 40, 0); // sets a margin b/w individual pages to ensure that there is a gap b/w them viewPager.setPageMargin(20); }

No es necesario establecer ningún ancho en la página ViewPager''s en el adaptador. No se requiere código adicional para ver la página anterior y siguiente en ViewPager . Sin embargo, si desea agregar espacio en blanco en la parte superior e inferior de cada página, puede establecer el siguiente código en el ViewPager''s secundaria de ViewPager.

android:paddingTop="20dp" android:paddingBottom="20dp"

Este será el aspecto final de ViewPager.


Para mostrar una vista previa de las páginas izquierda y derecha, configure los siguientes dos valores

  1. viewpager.setClipToPadding(false);
  2. viewpager.setPadding(left,0,right,0);

Si necesita espacio entre dos páginas en el visor, agregue

viewpager.setPageMargin(int);


Utilice este fragmento de adaptador y clase para ver el viewpager en scroll.add izquierdo y derecho de las clases necesarias para desplazarse y ver las páginas siguientes.

package com.rmn.viewpager; import java.util.List; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; /** * The <code>PagerAdapter</code> serves the fragments when paging. * @author mwho */ public class PagerAdapter extends FragmentPagerAdapter { private List<Fragment> fragments; /** * @param fm * @param fragments */ public PagerAdapter(FragmentManager fm, List<Fragment> fragments) { super(fm); this.fragments = fragments; } /* (non-Javadoc) * @see android.support.v4.app.FragmentPagerAdapter#getItem(int) */ @Override public Fragment getItem(int position) { return this.fragments.get(position); } /* (non-Javadoc) * @see android.support.v4.view.PagerAdapter#getCount() */ @Override public int getCount() { return this.fragments.size(); } } package com.manishkpr.viewpager; import android.content.Context; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; public class ViewPagerAdapter extends FragmentPagerAdapter { private Context _context; public ViewPagerAdapter(Context context, FragmentManager fm) { super(fm); _context=context; } @Override public Fragment getItem(int position) { Fragment f = new Fragment(); switch(position){ case 0: f=LayoutOne.newInstance(_context); break; case 1: f=LayoutTwo.newInstance(_context); break; } return f; } @Override public int getCount() { return 2; } }


si alguien aún está buscando una solución, he personalizado la página de visualización para lograrlo sin usar un margen negativo, encuentre un proyecto de muestra aquí https://github.com/44kksharma/Android-ViewPager-Carousel-UI debería funcionar en la mayoría de los casos, pero usted aún puede definir el margen de la página con mPager.setPageMargin(margin in pixel);