• 0
Yarpda

Вопрос по быстродействию TListBox

Вопросы

(почему-то нет ветки в андроид по производительности, поэтому написал сюда)

 

Пробую писать под FM на Андрод и столкнулся с жуткими тормозами при прокрутке в TListBox.

Динамически создаю TListBoxitem'ы и закидываю в каждый итем 4 Tlabel'я разных цветов методом MyListBoxItem.AddObject(MyLabel);

И так для каждого Итема. Если список  из 5-10 итемов прокручивается еще куда ни шло. Но список из 25 итемов  и более просто дико тормозит при прокрутке. 

Подскажите, может быть я что-то не так делаю. Какие параметры или настройки могут влиять на производительность листбокса в частности,

и на производительность FM для Андроид в общем?

Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 ответов на этот вопрос

  • 0

Для таких целей просто нужно использовать TListView. ListBox будет тормозить, он не создан для больших списков.

Для вас отлично подойдет MultiDetailView. Он в Samples лежит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вообще не правильный метод вы выбрали! Делается это через Стили и данные присваиваются через StyleData[...]

Создайте свой стиль, разместите в нем компоненты и дайте им имена. Уверен будет намного лучше.

прочитайте про стили в FMX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вообще не правильный метод вы выбрали! Делается это через Стили и данные присваиваются через StyleData[...]

Создайте свой стиль, разместите в нем компоненты и дайте им имена. Уверен будет намного лучше.

прочитайте про стили в FMX

Со стилями у меня пока туго... Там вообще мне кажется что-то заоблачное. Если еще немножко подправить то могу понять, но чтобы создать свой, совсем не понимаю. А вот подробный мануал по созданию стилей, который я смог бы понят, я так не не нашел. Есть, но больше обрывки, или частные случаи, а вот чтобы с нуля, или например добавление новых контролов в существующий стиль, с возможностью его редактировать на форме, я такого не нашел совсем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вообще не правильный метод вы выбрали! Делается это через Стили и данные присваиваются через StyleData[...]

Создайте свой стиль, разместите в нем компоненты и дайте им имена. Уверен будет намного лучше.

прочитайте про стили в FMX

Все равно будет дико тормозить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

100 итемов в ListBoxe с картинками и не тормозит при быстром скроле?

Ну и речь офк идет о мобильных платформах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

100 итемов в ListBoxe с картинками и не тормозит при быстром скроле?

Ну и речь офк идет о мобильных платформах.

Да, именно о обильных, под Win все ОК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Я к тому, что не очень верится что на мобилках стилизованный листбокс с картинками со 100 итемами не тормозит при скролле. А не верится потому, что пробовал. Под настольные ПК понятное дело не тормозит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

 

Вообще не правильный метод вы выбрали! Делается это через Стили и данные присваиваются через StyleData[...]

Создайте свой стиль, разместите в нем компоненты и дайте им имена. Уверен будет намного лучше.

прочитайте про стили в FMX

Все равно будет дико тормозить.

 

Андроид телефон Samsung Note 4 и на s3 проверял проверил 400 записей с картинками и всем тем что описал выше ,полет нормальный, а вот когда побывал использовать TreeView то он жутко тормозил даже с 10 записями, может все дело в коде?? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Подтверждаю, тормоза есть, даже при 25 записях (со стандартным стилем). Устройство указано в подписи, проц далеко не слабый...

Что я заметил, так это 4 бага в листбоксе и тормоза(всё в XE7 без апдейта), в XE5-XE6 тормозов не было, это хорошо видно например здесь (20 секунда, вначале подлагнул скролл, а потом всё как по маслу (подгружалось более 500 записей/итемов), сейчас постоянно так подлагивает скролл).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Подтверждаю, тормоза есть, даже при 25 записях (со стандартным стилем). Устройство указано в подписи, проц далеко не слабый...

Что я заметил, так это 4 бага в листбоксе и тормоза(всё в XE7 без апдейта), в XE5-XE6 тормозов не было, это хорошо видно например здесь (20 секунда, вначале подлагнул скролл, а потом всё как по маслу (подгружалось более 500 записей/итемов), сейчас постоянно так подлагивает скролл).

попробуйте скролл отключить ,  скролл у меня отключен, и все лишние отключено, все равно код нужен, непонятно как изображения подгружаются , в xe 7 кэширование стилей есть , фото у меня в  StyleBook   Bitmap := GetImage('image'+inttostr(i)+'style'); без кода ответа точно не буде, код и пример приложите

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Tarik Live
      Здравствуйте! Уже почти неделю пытаюсь завести библиотеку org.eclipse.paho.client.mqttv3-1.2.0 в своём приложении. Я знаю о существовании компонента от TMS, но он не умеет работать в фоновом сервисе.
      Вот код который я использую для тестов:
       
      Стандартная библиотека org.eclipse.paho.client.mqttv3-1.2.0 выпадает в ошибку initializer error сразу на строчке 
      mqtt:=TJMqttClient.JavaClass.init(StringToJString('tcp://m23.cloudmqtt.com:11021'), StringToJString('java')); по логам с телефона стало понятно, что проблема в логах 😐 а конкретно когда библиотека пытается создать логгер выпадает ошибка что не найден файл локализации ru_RU для logcat (сами файлы там вроде как есть). Ладно. Скачал исходники почистил код библиотеки от упоминаний логгера, собрал ииии и ничего. Продвинулся до строчки 
      mqtt.connect(); также пробивал 
      mqtt.connect(mqttconopt); ничего не помагает, получаю ошибку сегментации класса 
      Пока не понятно куда копать дальше? Возможно что не все библиотеки можно использовать в delphi приложениях? 

      P.S Старая версия 1.1.1 тоже не завелась :(
      service test2.rar
    • От Юрий Гусач
      Доброго дня!
      Проясните пожалуйста ситуацию: при запуске программы  под Андроидом на различных устройствах я получаю размеры формы, которые вроде всегда в разы меньше чем максимальное разрешение экрана конкретного устройства. Я пробовал планшеты и разные смартфоны. Написал тестовую прогу, которая выводит СlientScreen и  ClientWidth формы, на которой ничего больше нет. Например для крайне бюджетного смартфона Fly FS-549 получилось 497 х 320, а по паспорту 854x480. Разрешение и так хреновое, а Delphi его еще сильнее уменьшает. -       Почему это происходит и можно ли как то это обойти?
       
       
    • От Андрей Лещинский
      Здравствуйте ребята. С Firemonkey знаком только два дня. Многое уже подчеркнул с данного форума. Спасибо вам. 
      Проблема заключается в том, что у меня sdk для андроид 7 версии. Я собираю apk файл, запускаю его на Андроид 7 и все отлично, но как только я устанавливаю приложение на Андроид например версии 5, то при запуске оно мерцает пару раз и потом отображается отлично. Не подскажите в чем проблема? Я пробовал проект с данного форума, чтобы форма уходила под статусбара. Вот все они и мерцают на Андроид ниже 7, другие не пробовал проекты
      Стаж у меня только 2 дня, скажите в какую сторону смотреть мне далее
    • От gutalin79
      Почему при добавлении MapView в пример Android Service, приложение перестает работать?
      AndroidSimpleService.zip
       
       
       
      Пример делал по этому видео: 
       
    • От Вячеслав
      Добрый день, форумчане! Столкнулся со следующей задачей: 
      Имеется TListBox с 32 итемами, задаются в DesignTime. В некоторых ситуациях требуется убрать половину, оставить только первые 16 итемов. Я делаю лишние невидимыми, но при этом область прокрутки листбокса остается прежней и излишне большой. В связи с этим вопрос: можно ли как-то ограничить область прокрутки? 
      XE7, Windows.
    • От Astghik
      Hello !!!
      I want onButtonClick create popup. I use TPopup component. All good, but on android "Back button" click closing forma. But I want close popup (when popup is shown).

       
      //---------------------------------------------------------------------------------
      void __fastcall  btn3PointsClick(TObject *Sender)
      {
          PopUpSettings->IsOpen = true;
          PopUpSettings->PlacementTarget = btn3Points;
          PopUpSettings->BringToFront();
      }
      //-------------------------------------------------------------------------------------
      void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose)
      {
          try {
              if (PopUpSettings->IsOpen == true) {
                  CanClose = false;
              }
              else {
                  CanClose = true;
              }
          } __finally {
              PopUpSettings->IsOpen = false;
          }
      }
      //-------------------------------------------------------------------
       
    • От Rokweb
      Таймер с интервалом 1мс заметно подтормаживает во время выполнения анимации TFloatAnimation в Tokyo. У всех так или только у меня?
    • От Rokweb
      Здравствуйте.
      Речь пойдёт об Android.
      Использовал в Berlin данный unit для проигрывания звуков (TMediaPlayer не подходит) и все отлично работало. Сейчас перешел на Tokyo и происходит зависание в цикле:
       
      while not GLoaded do begin Sleep(10); Application.ProcessMessages; end;  
      Модуль прикрепил в сообщении.
       
      Так же интересует - возможно ли, использовать стиль, созданный в процессе разработки Android приложения - в iOS и если да - то как это правильно реализовать (почти каждый контрол имеет сейчас свой стиль)?
       
      Прошу помощи.
      GameAudioManager.zip
    • От zekelive
      Товарищи, здравствуйте. Хотел бы проконсультироваться с вами на довольно сложно для меня тему. Имеется клиентское мобильное приложение на Андроид. Принцип его просто, загружает фирмы из БД в scrollbox. За счёт того, что сразу загрузка всех данных из сервера занимает длительное время, было принято решение загружать с сервера только ключевую информацию (название фирмы), а остальную информацию загружать из локальной БД. При этом, т.к. файл БД можно легко вытащить из apk файла любому человеку, размещать всю БД на локалке нельзя. Только информацию в целом не представляющую большой значимости в отдельности от названия фирмы и не только. 
      Вопрос, правильная ли схему построения была выбрана с точки зрения защиты данных (если это так можно назвать), и оптимизации загрузки информации. 
      Приветствуются ваши советы, как лучше построить схему взаимодействия приложения с БД, или как лучше защитить данные. В идеале для быстродействия, загнать побольше данных в локальную БД. 
    • От Edward Tarasov
      Привет всем. кто сталкивался с такой ерундой, что в webbrowser вместо сайта тупо белый экран?? причем сам сайт отображаеться норм, и на том же планшете, но в стандартном бразуере и на компе... и именно этот сайт не пашет из приложения
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу