2013-08-14 2 views
1

Я строю очень простой webapp, который отображает графики паромов.Прокрутка Android Phonegap очень нестабильная

Я использую phonegap, чтобы перенести его в «родное» приложение на Android, и у меня возникли проблемы с прокруткой.

Он отлично работает в Chrome на устройстве, а также в браузере Android. Я тестировал несколько устройств, и все они отлично работают в браузере. Как только я помещаю проект в Phonegap, прокрутка становится очень «изменчивой» и пропускает и палки. Я добавил ссылку на видео, чтобы показать вам поведение:

http://youtu.be/D18s9kgnD7g

Я дам вам краткое объяснение того, как это работает:

Мы используем методы translate3d CSS для переходов, когда мы переключите контент, чтобы избежать использования переходов страниц. Из-за этого мы не прокручиваем фактическую страницу, мы прокручиваем отдельные контуры контента, чтобы мы избегали странных прокручиваемых ошибок при переключении между представлениями контента. В основном у нас есть три «представления контента» на одной странице, которые выключаются, когда мы хотим переключать представления.

Вот ссылка на приложение:

http://ferriesapp.ca/app/

Вещи, которые я пробовал

Мы используем "overscroll: прокрутки;" один из этих разделов контента, который, как я знаю, несовместим с Android 2.3, но должен быть хорошим.

Мы попробовали несколько больших библиотек, таких как iScroll и прокручиваемое, и все такое, что безрезультатно.

Я пробовал предотвращать действия по умолчанию для touchmove.

Мы закодировали правильные события касания, используя сенсорный модуль Zepto.

Я тестировал устройства от Nexus one (4.0.4) до Nexus 7 (4.3), и это одна и та же история на всех этих устройствах.

Любая помощь будет оценена СИЛЬНО

Я боролся с этим на некоторое время, и теперь я не могу найти что-нибудь в Интернете, которая попадает на этот «порывистый» прокруткой ошибка.

EDIT: Вот LogCat от установки, когда происходит прокрутка ошибка: http://pastebin.com/Aa7mDeAX

+0

Android Webview не поддерживает полный набор функций браузера Chrome. Проверьте/опубликуйте свой логарифм, чтобы узнать, появляются ли какие-либо полезные сообщения. –

+0

@MorrisonChang - это нефильтрованный LogCat от установки до того, когда произойдет ошибка прокрутки ... Я все еще новичок в разработке Android, поэтому я не знаю, что это значит: http://pastebin.com/Aa7mDeAX – Spittal

+0

Я ничего не видел в вашем журнале, возможно, кто-то другой. Возможно, вы захотите отключить аппаратное ускорение в своем приложении, чтобы увидеть, как оно влияет на приложение. См. Сеанс Google IO в Android WebView: https://developers.google.com/events/io/2012/sessions/gooio2012/122/ –

ответ

1

У вас там довольно неприятная таблица стилей. Во-первых, вам не нужна коробка shaddow, потому что мобильному не нравится это. Затем, поскольку у вас много пробелов, вы хотите помочь улучшить работу с этими пробелами с помощью user-select: html.

* { 
    margin: 0; 
    padding: 0; 
    -webkit-user-select:html; 
    -khtml-user-select:html; 
    -moz-user-select:html; 
    -ms-user-select:html; 
    user-select:html; 
} 

Это должно помочь с прокруткой, но вы все еще есть тонны вещей, чтобы очистить с этим CSS. Другая проблема заключается в том, что у вас даже нет кордоры, загруженной правильно, но это, вероятно, не имеет большого значения для прокрутки.

Собственно, что такое zepto_002.js? Это похоже на то, что вызывает основную проблему прокрутки.

+0

Эй, я не вижу, где вы видите zepto_002.js Мы не связываем это где-нибудь в коде, и это не в наших ресурсах? Где вы это видели? – Spittal

+1

Извините, я загрузил код, чтобы попробовать его на самом устройстве, так как это единственный способ его использования. zepto_002.js - это, вероятно, ваш zepto.min.js. Когда я удаляю это, прокрутка работает нормально. И так как это может быть не так, это может быть что-то с вашим скриптом, использующим zepto. – Noogen

+0

Эй Это был сенсорный модуль Zepto, который вызывал проблемы! Я удалил это, и теперь все хорошо! Благодаря! – Spittal

0

Как разработчик Google Play собрата, имея «три„содержания мнения“на одной странице, что переключают, когда мы хотим, чтобы переключить вид на «Это не очень хорошая идея. мой единственный вход, хотя, если вы хотите пройти этот путь, нужно проверить это http://pocketnow.com/2012/05/25/what-is-force-gpu-rendering-in-ice-cream-sandwich

+0

Эй, Сэм, спасибо за ввод, я знал об рендеринге gpu силы перед публикацией этого и даже заставляя это, похоже, ничего не делать. Что касается 3 просмотров контента, это не ajax, загружающие их или что-то еще, это просто «их перемещение», мы сделали это, чтобы избежать использования загрузок страниц. – Spittal

Смежные вопросы