Estoy diseñando una vista con varias páginas. Quiero que los bordes de las páginas anteriores y siguientes se muestren como a continuación e implemente deslizar dos dedos para cambiar de página.
Intenté usar ViewPager
con un margen de página negativo como se sugiere aquí, pero eso solo muestra uno de los bordes en la pantalla, no ambos simultáneamente.
Alternativamente, ¿hay alguna manera de que pueda colocar parte de mi vista fuera de la pantalla y luego animarla dándole un ViewPager
efecto de tipo?
¿Cómo debo hacerlo? Gracias !
android
android-viewpager
viewflipper
viewanimator
Gaurav Arora
fuente
fuente
Respuestas:
Citando a mí mismo de una publicación de blog sobre este tema :
fuente
Tengo una solución similar:
En el visor, configure el relleno izquierdo y derecho, por ejemplo, 20dp. También configure el margen de la página en el visor, por ejemplo, la mitad del relleno del localizador. Y no olvide deshabilitar el relleno del clip.
fuente
Establezca el relleno izquierdo y derecho para ver todo el elemento. Ejemplo xml (page_item.xml):
Luego establezca un margen de página negativo
PageView
igual a 2 * (relleno de vista anterior)Opcional. Establezca cero margen izquierdo para el primer elemento y cero margen derecho para el último elemento para ocultar los bordes vacíos. Puedes hacer esto en el
PageAdapter
Page
clase o fragment.fuente
Para mostrar la vista previa de las páginas izquierda y derecha, configure los siguientes dos valores
Si necesita espacio entre dos páginas en el visor, agregue viewpager.setPageMargin (int)
Android ViewPager: muestra la vista previa de la página a izquierda y derecha
fuente
si alguien sigue buscando una solución, había personalizado el ViewPage 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 todavía puede definir el margen de la página con
mPager.setPageMargin(margin in pixel);
fuente
Descargue el código fuente desde aquí ( ViewPager con límites de página anteriores y siguientes )
MainActivity.java
fuente
Hace algún tiempo necesitaba esa característica y preparé una pequeña biblioteca que se usa
RecyclerView
con PagerSnapHelper (agregado en la versión 25.1.0 de la biblioteca de soporte v7) en lugar del clásicoViewPager
:MetalRecyclerPagerView : puede encontrar todo el código junto con ejemplos allí.
Principalmente consiste en un único archivo de clase: MetalRecyclerViewPager.java (y dos xmls: attrs.xml y ids.xml ).
Espero que ayude a alguien :)
fuente