23

En android, ¿podemos deslizar un fragmento sobre otro? Por ejemplo, en la siguiente imagen:deslizando un fragmento sobre otro en Android

image 1

Hay dos fragmentos. Uno es de color rojo y el otro de color azul. Si el usuario presiona su dedo sobre la flecha de color negro y la arrastra hacia la derecha, el fragmento de color rojo también arrastra consigo, cubriendo así el fragmento azul. Al final, el fragmento rojo cubre todo el fragmento azul. Además, si el usuario levanta su dedo antes de que el fragmento rojo se haya arrastrado a menos de la mitad del fragmento azul, el fragmento rojo debería volver a su lugar original (y por lo tanto no cubrir el fragmento azul). Sin embargo, si el usuario no levanta su dedo (es decir, arrastra la flecha) hasta que el fragmento rojo cubra más de la mitad del fragmento azul, o todo el fragmento azul, entonces el fragmento rojo debe cubrir todo el fragmento azul.

Además, si hay alguna vista en el fragmento de color rojo (como, Buttons, EditTexts etc.), también se volverán a clasificar según corresponda.

¿Hay alguna manera de hacer esto? ¿Si es así, entonces cómo?

+0

¿Ha resuelto este problema? – Tushar

+0

Tengo mucha curiosidad si ya entendiste esto ...? – Glenn85

+0

Ha pasado bastante tiempo desde que hice esta pregunta. No recuerdo cómo lo resolví, ni si lo resolví o no. – Vaibhav

Respuesta

2

Supongo que lo que estás tratando de hacer es algo así como la última interfaz de usuario de Android Market? Donde puedes deslizarte a través de fragmentos que muestran cosas diferentes, ¿verdad?

Si eso es todo, entonces te recomiendo que eche un vistazo a este sitio: http://viewpagerindicator.com/

Es un proyecto realizado por Jake Wharton, que hace lo que usted está pidiendo. Puede descargar su código fuente para encontrar la manera de implementarlo usted mismo o simplemente puede usarlo como una biblioteca (como se explica en el sitio web).

Para obtener información adicional le recomiendo que echar un vistazo a fragmentos y FragmentActivity en Android, aquí va un enlace a un ejemplo que utiliza ambos fragmentos y FragmentActivity pero hay un montón en el Internet: http://www.e-nature.ch/tech/?p=6

Esperanza esta ayuda!

+0

Gracias por la respuesta, aunque esto no es lo que estoy buscando. ViewpagerIndicator proporciona una funcionalidad diferente. – Vaibhav

1

No puedo pensar en forma más fácil ... así que trate de hacerlo de esta manera:

Trate de usar FrameLayout. Agregue un LinearLayout azul, luego agregue un LinearLayout rojo, por ejemplo. Entonces el diseño rojo sería uppon blue one.

Conecte onTouch listener en el diseño rojo. Realice un cálculo simple de las coordenadas xey que TouchEvent le brinda, para establecer programáticamente los parámetros de diseño de la disposición roja, por ejemplo, el ancho.

Esa es la idea de mi cabeza, nunca lo había intentado.

Espero que te ayude. ¡Salud!

+1

Gracias por la respuesta. Probé este enfoque y funcionó bien. Pero no ofrece un enfoque ** suave ** de arrastre, es decir, la pantalla parpadea cuando se resetean los Parámetros de diseño, y el diseño se vuelve a medir y se vuelve a dibujar. – Vaibhav

4

¿Ha considerado usar o extender SlidingDrawer? Podría tener el fragmento rojo como el contenido del cajón y la flecha negra como el asa.

2

Supongo que usaría un grupo de vista personalizado que amplía una distribución lineal. Las vistas internas deben tener un peso de diseño para definir su parte de la pantalla.

Debe anular sus grupos de vista personalizados en Layout y OnMeassure, recuerde que un grupo de vistas requiere medidas y diseños de sus elementos secundarios, para un cambio de página uniforme.

Espero que ayude.

Cuestiones relacionadas