Barra de desplazamiento en Phonegap?
Soy nuevo en Phonegap. Estoy mostrando una lista de datos en una vista de lista. Los datos se recogen de un servidor y quiero agregar una barra de desplazamiento a la vista. ¿Cómo agregar una barra de desplazamiento en Phonegap y hacer que el desplazamiento de la vista sea pegajoso? Jow para que sea suave? Por favor, me guía para hacer esto.
Gracias por adelantado.
- El video HTML5 en el modo de pantalla completa en la aplicación cordova se estira en dispositivos Android
- No se puede encontrar el módulo 'which' - Cordova android
- Escáner de código de barras zxing en una div fija en phonegap android app
- Android jónico falla llamadas AJAX con lista blanca de Cordova
- Mostrar barra de estado en Android en la aplicación PhoneGap (es decir, evitar la pantalla completa)
- Obtener error Gradle "No se pudo reservar espacio suficiente para montón de objetos" constantemente en Intellij IDEA
- Solicitudes de AJAX a los recursos HTTPS de firma propia en Cordova / PhoneGap 2.1.0 Aplicaciones de Android
- Mostrar varias líneas en la notificación push android Phonegap
- Cordova Target Android
- Geolocalización de phonegap, código 3 - el tiempo de espera expirado sigue apareciendo en algunos dispositivos Android
- Cordova / Phonegap / Ionic App - tienda local de imágenes remotas
- Menubutton no funciona más después de la actualización a cordova 5 + cordova android 4.0.0
- cómo ejecutar un programa de PhoneGap en el emulador de Android?
Personalmente no me gusta iscroll .. tuve muchos problemas al usarlo así que descubrí otra solución … puedes probar esto:
1.) establecer su desbordamiento DIV a auto (o desplazarse) y establecer su altura .. por ejemplo
<div id="wrapper" style="overflow:auto; height: 200px">...content...</div>
(Por lo general, calcular la altura con javascript basado en el tamaño de la pantalla del usuario .. Nunca he fijado una altura fija para todos los dispositivos, esto es sólo para el propósito de esta "demo")
2.) añadir este javascript:
<script> function isTouchDevice(){ try{ document.createEvent("TouchEvent"); return true; }catch(e){ return false; } } function touchScroll(id){ if(isTouchDevice()){ //if touch events exist... var el=document.getElementById(id); var scrollStartPos=0; document.getElementById(id).addEventListener("touchstart", function(event) { scrollStartPos=this.scrollTop+event.touches[0].pageY; event.preventDefault(); },false); document.getElementById(id).addEventListener("touchmove", function(event) { this.scrollTop=scrollStartPos-event.touches[0].pageY; event.preventDefault(); },false); } } </script>
3.) llamarlo en carga de página .. si utiliza jQuery:
$(document).ready(function() { touchScroll("wrapper"); });
4.) si desea que sus barras de desplazamiento sean visibles, simplemente defina las siguientes reglas CSS:
::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { border-radius: 10px; } ::-webkit-scrollbar-thumb { border-radius: 10px; background-color: #000; }
Esto se probó y debería funcionar exactamente igual en cualquier dispositivo Android (incluso modelos anteriores) o iOS (que funciona también sin esta solución, pero esta solución no lo romperá). Puede combinar esto con position: fixed o position: absolute del elemento wrapper …
También puede jugar con la función touchScroll, puede agregar un poco de relajación o incluso la detección de deslizar con desplazamiento automático, etc, pero esto es un problema un poco más avanzado …
Utilice iscroll .
Pasos
function loaded() { document.addEventListener('touchmove', function(e){ e.preventDefault(); }); myScroll = new iScroll('scroller'); } document.addEventListener('DOMContentLoaded', loaded);` <div id="wrapper"> <div id="scroller"> <ul> <li>...</li> </ul> </div>
El #wrapper también necesita algunas clases:
#wrapper { position:relative; z-index:1; width:/* your desired width, auto and 100% are fine */; height:/* element height */; overflow:/* hidden|auto|scroll */; }
Ver esta demostración de ejemplo
- Error al listar archivos con Android Storage Access framework en Lollipop
- "La conexión con adb fue interrumpida." Han intentado TODO