использование FlexboxLayout друг в друге происходит медленно в iOS - PullRequest
0 голосов
/ 05 ноября 2018

В моем шаблоне много элемента FlexLayout, и он очень медленный на устройствах iOS. я заменил это на StackLayout, и теперь оно стало немного быстрее, чем раньше.

Я хотел бы знать, какой контейнер макетов является самым быстрым макетом в Nativescript.

Ответы [ 2 ]

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

Я заметил то же самое с FlexboxLayouts на IOS, где я делал анимации с макетами. Он отлично работал на Android, но на IOS работал очень медленно. Я переключил его на GridLayout, и все заработало намного лучше.

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

Никогда не существует единственного правильного решения для всех различных потребностей, поэтому у нас всегда есть варианты, и это относится и к макетам в {N}.

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

Если вы покажете, что именно вы пытаетесь достичь, мы можем дать вам несколько советов. Для повышения производительности вам, возможно, придется следовать некоторым общим рекомендациям

  1. Избегайте вложенных макетов
  2. Используйте GridLayout, когда вам нужно известное количество разделов в вашем пользовательском интерфейсе, чем меньше количество разделов, тем выше будет производительность. В противном случае используйте FlexboxLayout.
  3. Если вы хотите просто складывать элементы в вертикальном или горизонтальном порядке, StackLayout может быть хорошим вариантом. Используйте FlexboxLayout только в том случае, если вы хотите использовать особые функции Flex Box, например, когда элементы должны быть перенесены на следующую строку, изменить порядок элементов и т. Д.,
  4. Старайтесь не использовать StackLayouts только для сотрясения границ вокруг, поскольку вы можете добавить границу к самому компоненту.
  5. Если у вас действительно сложные сложные компоненты пользовательского интерфейса, вы можете загрузить его после завершения навигации по странице, что может быть быстрее.
  6. Максимально предпочтите ListView, а не цикл Repeater / for.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...