Замена списков в коденамеоне - PullRequest
0 голосов
/ 28 ноября 2018

Согласно этой страницы , com.codename1.ui.List следует избегать.Поэтому я использую Container в качестве замены, как рекомендовано, и она хорошо работает с моими данными испытаний с десятками или сотнями элементов.Однако нет верхнего предела для количества элементов, и я уверен, что мне понадобятся некоторые оптимизации.Я не думаю, что разбиение на страницы имело бы смысл для пользователя, поэтому мне нужно иметь возможность показывать (десятки) тысяч элементов.

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

  • Как заставить пустой контейнер иметь ту же высоту, что и заполненный?
  • Как узнать, какие предметы нужно показывать?Я мог бы использовать ScrollListener, но, возможно, есть более простой способ?
  • (субъективно) Это глупая идея?

1 Ответ

0 голосов
/ 29 ноября 2018

Я думаю, что это ошибка.Список поддерживает миллионы записей.К сожалению, попытка прокрутить их пальцем была нереальной.Это легко сделать на рабочем столе, где у вас есть полоса прокрутки, но просто не может быть и речи о сенсорных пользовательских интерфейсах.

Представьте, что вам звонят или случайно нажимают кнопку «Домой» во время прокрутки записей в 10 тыс.Или что-то очень раздражающее, что часто случается со мной в приложении reddit: когда вы нажимаете на их логотип по ошибке (что может случиться, если я слишком сильно нажимаю на боковую часть телефона), он переходит наверх.Попробуйте снова начать прокрутку после этого ...

Если это реальный случай, и высота каждого предмета одинакова, тогда вы можете использовать List для этого крайнего случая.Именно в этом причина архитектуры рендерера списка.Обратите внимание, что его преимущества в производительности начинают проявляться, когда вы достигаете 10 000 записей или выше ... Но я не думаю, что UX реалистичен на устройстве.

...