Вам понадобится Щепка , чтобы достичь этого.Идея здесь состоит в том, чтобы иметь много списков и прокручивать каждый из них полностью, прежде чем начинать прокручивать второй.
Для использования слипы вам нужно CustomScrollView
, у которого есть свойство под названием slivers
, которое на практике, работает почти так же, как children
для нескольких дочерних виджетов.
Существует множество гибких виджетов, чтобы вы могли выбрать, какой из них соответствует вашим потребностям.Если вам нужна Сетка, вы должны использовать SliverGrid
.Вы можете передать дочерние элементы Grid через свойство delegate
.
Насколько мне известно, нет скользящего виджета, который ограничивал бы вас только одним дочерним элементом - все они являются множественными дочерними виджетами - поэтому последнийупомянутый вами виджет должен быть внутри Списка (или чего бы вы ни предпочли).
Похоже, вам нужно что-то вроде этого:
Container(
child: CustomScrollView(
slivers: [
// This one is scrolled first
SliverGrid(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3),
delegate: SliverChildListDelegate([
// Place your children here
]),
),
// Then this one becomes visible and start scrolling as well
SliverList(
delegate: SliverChildListDelegate([
// Place that last widget here
]),
),
],
),
);