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
-
viewpager.setClipToPadding(false);
-
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);