Size: a a a

Dart & Flutter по-русски

2020 December 05

AU

Andrey Unger in Dart & Flutter по-русски
все занято
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
У зеленого-то минимальная высота 100
источник

AU

Andrey Unger in Dart & Flutter по-русски
откройте fлаттер инспектор
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
Он не должен быть меньше 100, и занимать всё, что не занял красный
источник

AU

Andrey Unger in Dart & Flutter по-русски
ну так и есть
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
Еще раз, проблема в том, что у column должны быть фактически два Flexible элемента, но, не связанных с собой пропорционально, а скорее работать с приоритетами. Flexible верстку я знаю достаточно хорошо (хотя допускаю что я жестко протупил и решение на поверхности), и здесь банальные решения описанные в статьях не подходят. Поверьте, я пробовал всякие комбинации Flexible, и их основная проблема в том, что они ограничены пропорциями.
источник

AU

Andrey Unger in Dart & Flutter по-русски
вы просто сами не понимаете что хотите. красный занял максимальную для него высоту. Зеленый занял все оставшееся. в чем проблема?
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
Andrey Unger
ну так и есть
Ну как? Если у красного сказано "займи доступное пространство, но не больше своей ширины", а при такой верстке ему еще вешают "но не больше чем половина доступного свободного пространства, т.к вторая половина принадлежит зеленому"
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
Andrey Unger
вы просто сами не понимаете что хотите. красный занял максимальную для него высоту. Зеленый занял все оставшееся. в чем проблема?
Максимальная высота для него равна ширине.
источник

AU

Andrey Unger in Dart & Flutter по-русски
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
И я не вижу что бы он ее занял.
источник

AU

Andrey Unger in Dart & Flutter по-русски
на скриншоте выше можете с линейкой померить. ширина равна высоте у красного
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
Это кейс, когда ширина красного меньше чем половина свободного пространства, подвигайте ползунок viewport в дартпаде, и поймёте в чем моя проблема. Как только ширина экрана становится больше чем половина высоты экрана
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
Gorohov Valeriy
Это кейс, когда ширина красного меньше чем половина свободного пространства, подвигайте ползунок viewport в дартпаде, и поймёте в чем моя проблема. Как только ширина экрана становится больше чем половина высоты экрана
На идеальный кейсах и у меня всё работает, и заказчики принимали, пока я не запустил приложение на экране с пропорциями отличных от стандартных.
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
И кстати, вы упустили еще один момент, зеленый не занимает всё свободное пространство, он тоже становится ограниченным половиной свободного пространства, а т.к. красный не занимает всю свою часть, снизу экрана появляется фон - та часть пространства, которую не занял красный.
источник

AU

Andrey Unger in Dart & Flutter по-русски
Gorohov Valeriy
И кстати, вы упустили еще один момент, зеленый не занимает всё свободное пространство, он тоже становится ограниченным половиной свободного пространства, а т.к. красный не занимает всю свою часть, снизу экрана появляется фон - та часть пространства, которую не занял красный.
Column(
 mainAxisAlignment: MainAxisAlignment.spaceBetween,
 crossAxisAlignment: CrossAxisAlignment.stretch,
 children: [
   Flexible(
     flex: 0,
     child: Container(
       color: Colors.
red.shade400,
       constraints: BoxConstraints(
         minHeight: MediaQuery.
of(context).size.width / 2,
         maxHeight: MediaQuery.
of(context).size.width,
       ),
     ),
   ),
   Container(color: Colors.
yellow.shade400, height: 100),
   Expanded(
     flex: 1,
     child: Container(color: Colors.
green.shade400),
   ),
   Container(color: Colors.
blue.shade400, height: 100),
 ],
),
источник

AU

Andrey Unger in Dart & Flutter по-русски
вот так ничего внизу не остается
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
Andrey Unger
Column(
 mainAxisAlignment: MainAxisAlignment.spaceBetween,
 crossAxisAlignment: CrossAxisAlignment.stretch,
 children: [
   Flexible(
     flex: 0,
     child: Container(
       color: Colors.
red.shade400,
       constraints: BoxConstraints(
         minHeight: MediaQuery.
of(context).size.width / 2,
         maxHeight: MediaQuery.
of(context).size.width,
       ),
     ),
   ),
   Container(color: Colors.
yellow.shade400, height: 100),
   Expanded(
     flex: 1,
     child: Container(color: Colors.
green.shade400),
   ),
   Container(color: Colors.
blue.shade400, height: 100),
 ],
),
Установив flex в 0 вы фактически его убрали, и пришли к первоначальному варианту.
> If null or zero, the child is inflexible and determines its own size.
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
Smony
Переслано от Smony
Всем привет, ребят подскажите плз в чем может быть проблема на реальном устройстве список StaggeredGridView работает только на ios а на android не выводит вообще, хотя на виртуалке все ок
Сборка релиз или дебаг?
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
У вас картинки с интернета, на Андроиде в релизе нужно прописывать в манифесте доступ к интернету.
https://flutter.dev/docs/development/data-and-backend/networking

Это если банальные возможные проблемы смотреть. Если с этим всё ок, то нужна доп информация. Например, есть ли что в логах и что в дереве виджетов находится. первое позволить выявить исключения, второе покажет что и как строится (правда дерево в релизе недоступно, несколько я помню)
источник