У меня есть реализация ListCell
, как показано на рисунке ниже.Плохая производительность ListView на Gluon
Левая сторона, которая представляет собой дату, состоящую из 3-х этикеток, помещает в VBox
и «CounterContent», состоящий из счетчика, с TextField
для каждой цифры, содержащегося в HBox
, и два Hboxes
, содержащие этикетки для кВтч, кВт/ч и т. д. И это, кажется, слишком много, чтобы бегать по-настоящему.
Я попытался загрузить данные в фоновом задании, показывая индикатор прогресса, пока задача запущена, но в отличие от настольного компьютера, на Android-телефоне производительность очень плохая. Всякий раз, когда я переключаюсь на список, сборка мусора срабатывает и блокирует поток ui, так что индикатор прогресса никогда не появляется.
Я пробовал это на Huawei Y-300, Android 4.1.1, javafxports 8.60.6 (потому что javafxports 8.60.7 вызывает ошибку, что делает TextField
непригодным), а также на Samsung S5 mini, Android 5 +. На телефоне Samsung производительность в целом намного лучше, как и ожидалось, из-за компиляции Ahead-of-Time, я думаю, но проблема с сборкой мусора по-прежнему остается. Кроме того, после того, как список был заполнен ячейками, прокрутка не очень гладкая.
Является ли список вопросов сложным или что еще может быть проблемой для плохой работы?
UPDATE:
После запуска много испытаний кажется негладкий скроллинг не вызван проблемами производительности. По крайней мере, на S5 (javafxports 8.60.7).
я удалил все CSS стилей и заменил текстовые поля по одной метке (счетчик узел уже пользовательский элемент управления (забыл об этом), который излагает текстовые поля в 2 Regions
(не HBoxes
) и узлы ListCell
создаются в конструкторе). Кроме того, я переключил ListView
на CharmListView
и установил android.monocle.input.touchRadius = 1.
Ничто из этих шагов не привело к значительному улучшению.
Просто пояснить: В отличие от телефона Huawei, прокрутка на S5 и Android 5+ может быть использована, но это не очень гладко, что создает неудовлетворительную работу пользователя.
На Huawei (javafxports 8.60.6), изменяя поля для встречных текстовых полей для ярлыка, значительно улучшилось, но не до такой степени, что прокрутка стала пригодной для использования. Пока я не установил этот волшебный экспериментальный переключатель: gluon.experimental.performance = true, что делает список прокрутки молнии быстрым (после небольшой задержки разминки), но все же не очень гладким.
Спасибо за подробную информацию! Я обновил свой вопрос с помощью шагов, которые я предпринял, для дальнейшего изучения проблемы. – jns
Рад, что вы получаете некоторые улучшения. Пробовали ли вы приложение 2015 года Gluon [JavaOne] (https://play.google.com/store/apps/details?id=com.gluonhq.applications.javaone)? Он использует довольно эффективный элемент управления CharmListView, но без экспериментального флага. Проверьте, плавно ли прокрутка на ваших устройствах. –
Просто попробовал, увидев те же самые «прыжки» во время прокрутки, поэтому реализация списка ячеек не вызывает такого эффекта, как я ожидал в начале. Прокрутка в Webview, например. супер гладкий. – jns