Я пытался объединить flutter_staggered_grid_view с flutter_sticky_header, потому что я хочу липкий заголовок, который имеет динамическое соотношение сторон, специфичное для каждого ребенка (не для всех детей, как в реальном коде и на скриншоте: https://i.stack.imgur.com/lZgp0.png).Я хочу, чтобы это было только для того, чтобы текст соответствовал карточке или контейнеру (мне подходит crossAxisCount: 1), но было бы здорово объединить эти два проекта:)
@ Ромэн Растел - отличная работа!Если вы найдете это интересным, пожалуйста, помогите:)
List<Widget> _buildSideHeaderGrids(
BuildContext context, int firstIndex, int count) {
double cardWidth = MediaQuery.of(context).size.width / 3.3;
double cardHeight = MediaQuery.of(context).size.height / 3.6;
List<double> topet = [2,3,4];
return List.generate(count, (sliverIndex) {
print(sliverIndex);
sliverIndex += firstIndex;
return new SliverStickyHeader(
overlapsContent: true,
header: _buildSideHeader(context, sliverIndex),
sliver: new SliverPadding(
padding: new EdgeInsets.only(left: 60.0),
sliver: new SliverGrid(
gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1,
crossAxisSpacing: 4.0,
mainAxisSpacing: 4.0,
childAspectRatio: topet[sliverIndex],
),
delegate: new SliverChildBuilderDelegate(
(context, i) => GestureDetector(
child: new GridTile(
child: Card(
child: new Container(
color: Colors.orange,
child: Text(""),
),
),
footer: new Container(
color: Colors.white.withOpacity(0.5),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: new Text(
'Grid tile #$i',
style: const TextStyle(color: Colors.black),
),
),
),
),
),
childCount: 3, // grid tile brenda
),
),
),
);
});
}