Estoy realmente cansado de buscar una solución para Scrollview vertical y horizontal.
Leí que no hay vistas / diseños en el marco que implementen esta función, pero necesito algo como esto:
Necesito definir un diseño dentro de otro, el diseño secundario debe implementar el desplazamiento vertical / horizontal para moverse.
Inicialmente implementé un código que movía el diseño píxel por píxel, pero creo que esa no es la forma correcta. Lo probé con ScrollView y Horizontal ScrollView pero nada funciona como quiero, porque solo implementa el desplazamiento vertical u horizontal.
Canvas no es mi solución porque necesito adjuntar oyentes en elementos secundarios de alguien.
¿Que puedo hacer?
android
scrollview
Kronos
fuente
fuente
Respuestas:
Mezclando algunas de las sugerencias anteriores, pude obtener una buena solución:
Vista de desplazamiento personalizada:
HorizontalScrollView personalizado:
ScrollableImageActivity:
el diseño:
fuente
LinearLayout
, supongo)Dado que este parece ser el primer resultado de búsqueda en Google para "Android ScrollView horizontal + horizontal", pensé que debería agregar esto aquí. Matt Clark ha creado una vista personalizada basada en la fuente de Android, y parece funcionar perfectamente: Two Dimensional ScrollView
Tenga en cuenta que la clase en esa página tiene un error al calcular el ancho horizontal de la vista. Una solución de Manuel Hilty está en los comentarios:
Editar: el enlace ya no funciona, pero aquí hay un enlace a una versión anterior de la publicación del blog .
fuente
fillViewport
yonMeasure
exactamente como la fuente ScrollView (v2.1). También cambié los dos primeros constructores con:this( context, null );
ythis(context, attrs, R.attr.scrollViewStyle);
. Con eso, puedo usar la barra de desplazamiento usandosetVerticalScrollBarEnabled
ysetHorizontalScrollBarEnabled
en el código.Encontré una mejor solución.
XML: (design.xml)
Código Java:
Eso funciona !!!
Si desea cargar otro diseño o control, la estructura es la misma.
fuente
Lo uso y funciona bien:
El enlace fuente está aquí: Android-spa
fuente
ImageView
contenido desplazable, puede o no funcionar para otros contenidos arbitrarios, y que Google cree que habrá problemas con su enfoque. La opinión de Google también es importante con respecto al desarrollo futuro: es posible que no estén tratando de asegurarse de que su enfoque funcione a largo plazo, si aconsejan a las personas que no lo usen en primer lugar.Mi solución basada en la respuesta de Mahdi Hijazi , pero sin ninguna vista personalizada:
Diseño:
Código (onCreate / onCreateView):
Puede cambiar el orden de las vistas de desplazamiento. Simplemente cambie su orden en el diseño y en el código. Y obviamente, en lugar de WateverViewYouWant, pones el diseño / vistas que deseas desplazar en ambas direcciones.
fuente
Opción n. ° 1: puede crear un nuevo diseño de interfaz de usuario que no requiera desplazamiento horizontal y vertical simultáneo.
Opción n. ° 2: puede obtener el código fuente
ScrollView
yHorizontalScrollView
aprender cómo los implementó el equipo principal de Android y crear su propiaBiDirectionalScrollView
implementación.Opción n. ° 3: puede deshacerse de las dependencias que le exigen utilizar el sistema de widgets y dibujar directamente en el lienzo.
Opción # 4: Si te topas con una aplicación de código abierto que parece implementar lo que buscas, mira cómo lo hicieron.
fuente
Prueba esto
fuente
Como el enlace de la Vista de desplazamiento bidimensional está muerto, no pude obtenerlo, así que creé mi propio componente. Maneja el lanzamiento y funciona correctamente para mí. La única restricción es que wrap_content podría no funcionar correctamente para ese componente.
https://gist.github.com/androidseb/9902093
fuente
Tengo una solución para tu problema. Puede verificar el código ScrollView que maneja solo el desplazamiento vertical e ignora el horizontal y lo modifica. Quería una vista como una vista web, así que modifiqué ScrollView y funcionó bien para mí. Pero esto puede no satisfacer sus necesidades.
Avíseme a qué tipo de interfaz de usuario está apuntando.
Saludos,
Ravi Pandit
fuente
Jugando con el código, puede poner un HorizontalScrollView en un ScrollView. De este modo, puede tener los dos métodos de desplazamiento en la misma vista.
Fuente: http://androiddevblog.blogspot.com/2009/12/creating-two-dimensions-scroll-view.html
Espero que esto te pueda ayudar.
fuente
uso de esta manera probé esto lo arreglé
Ponga todo su diseño XML dentro
Expliqué esto en este enlace vertical de reciclado Vista y horizontal de reciclaje de desplazamiento juntos
fuente