2014-10-02 5 views
0

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

Следующая мысль заключалась в использовании таблицы, которая, как я полагаю, также использует средства визуализации для оптимизации отображения его данных; но для имитации FlowLayout мне нужно получить предпочтительную ширину некоторого компонента-заполнителя, а затем разделить ширину контейнера на это, чтобы получить количество столбцов, а затем заполнить модель с учетом этого количества столбцов. Мне также нужно будет изменить все это, если устройство изменит ориентацию.

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

ответ

1

Я бы не использовал FlowLayout для чего-либо серьезного, хотя я сомневаюсь в его причине для ваших проблем с производительностью, которые, вероятно, связаны с чем-то другим. Существует производительность, которая немного устарела, но в основном по-прежнему актуальна: http://www.codenameone.com/how-do-i---improve-application-performance-or-track-down-performance-issues.html

В конструкторских терминах макет потока очень проблематичен, поскольку элементы не выровнены должным образом, создавая пользовательский интерфейс, который не выглядит хорошим, когда охватывается несколько строк. Я предлагаю использовать макет сетки, который имеет режим, называемый автоматическим прилеганием. Используя setAutoFit(true) на сетке ровно 1x1, все элементы будут равномерно распределены по доступному пространству на основе размера экрана и адаптируются с изменениями ориентации.

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