Я хочу создать аналогичное представление с Флаттер, поскольку мы можем сделать это, создав UICollectionViewLayout
в iOS.
Это пример кода, который я использую. https://github.com/flutter/flutter/blob/master/examples/flutter_gallery/lib/demo/material/grid_list_demo.dart
Как добиться этого с помощью GridView
в Флаттер. Если не GridView
, есть ли другой способ сделать это?
Я не хочу указывать какой-либо размер. Я хочу, чтобы он динамически увеличивался или уменьшался в зависимости от содержимого
GridView не предназначен для этого. Возможно, вы сможете заставить Сворачивать делать то, что вы хотите, хотя из вашего примера он может не совсем этого делать (по горизонтали это определенно не будет, поскольку он выстраивает элементы в строки; по вертикали это может сработать для вас или может не зависеть от того, что именно ты поживаешь).
Если у вас когда-либо будут только два столбца, вы можете просто иметь строку, содержащую два столбца, и убедитесь, что вы поместили элементы в правильные столбцы.
Или более сложным, но, вероятно, лучшим ответом было бы написать логику для такого расположения элементов самостоятельно - см. CustomMultiChildLayout.
Обновлено: есть также пакет, который может сработать для вас. Он не может выполнять произвольный размер, и вам нужно знать размеры элементов заранее, но вы можете указать элементы, которые будут занимать несколько строк или столбцов сетки. См. это здесь.
Обратите внимание, что если у вас много элементов, вы, вероятно, захотите что-то сделать с CustomScrollView, но на самом деле это не входит в объем этого ответа.
https://github.com/letsar/flutter_staggered_grid_view Это вам поможет. Думаю, плагин дает другой размер.
В чем именно заключается ваша проблема? Вы пробовали указать разные размеры?