Flutter--implementación de la función de lectura de pdf
Realice funciones como leer PDF, cambiar entre pantallas horizontales y verticales y hacer clic con dos dedos para acercar y alejar páginas PDF
En este proyecto, flutter_plugin_pdf_viewer: ^1.0. Se utiliza 7, que puede satisfacer nuestras necesidades. Necesidades básicas de lectura de PDF. El trabajo realizado para satisfacer las necesidades del proyecto es principalmente la función de cambio de pantallas horizontales y verticales, así como continuar leyendo después de nuestra inicialización, etc.
Primero, importe el código fuente de la parte del complemento.
Los ejemplos proporcionados por el complemento ya cumplen con las funciones más básicas de zoom de imágenes y lectura de pantalla horizontal. La dificultad de nuestro trabajo es realizar la lectura de pantalla vertical del pdf, por lo que los principales problemas que debemos resolver son los siguientes:
(1) La misma página no se puede cargar repetidamente en varias pantallas
Este problema es lo que necesitamos resolver, pero este problema no es un problema para nosotros.
(2) La velocidad de carga no puede ser demasiado lenta al cambiar entre pantallas verticales y horizontales, y la página no se puede desconectar.
(3) La posición de la página debe mantenerse cuando cambiar entre pantallas horizontales y verticales
En respuesta a los problemas anteriores, debemos resolverlos uno por uno.
Carga de tráfico repetida. Resolver este problema es relativamente simple. Podemos usar el almacenamiento en caché para lograr que cada vez que se carga la página PDF almacene su (clave, valor), para que podamos juzgar la próxima vez. se carga Si la página ya existe en el caché, recarga si no existe, llama a los datos en el caché si existe y borra todos los cachés si la página se destruye. Si no existe, se recargará; si existe, se llamarán los datos almacenados en caché y la página se destruirá borrando el caché.
Cambio de pantalla horizontal y vertical, implementación de lectura de PDF vertical, la idea es que todas las páginas de la pantalla horizontal existan en la lista, use LIstView.builder () para dibujar, la desventaja de este método es que es demasiado lento, es necesario cargar todas las páginas antes de poder dibujarlas. La experiencia del usuario es muy pobre, por lo que debemos realizar algunas mejoras. Entonces necesitamos hacer algunas mejoras para mejorar la velocidad de carga y lograr los efectos en GIF, necesitamos usar el método FutureBuilder () para implementar la función de precarga. La implementación específica es la siguiente:
La solución para cambiar entre el posicionamiento de la pantalla horizontal y vertical se introdujo en my (Flutter inicializa ListView para posicionar el componente secundario), que implementa la solución.
A estas alturas hemos solucionado todos los problemas.