我怎样才能让 Custom Sticky Header 中的 headers 粘在彼此下面而不是在颤动中重叠?
how can i make the headers from Custom Sticky Header stick below each other instead of overlapping in flutter?
我想我明白了自定义粘性 Header 现在是如何工作的,但我找不到在哪里可以添加停止粘性 Header 的 header 的功能从重叠
我想实现如下图所示的效果,但没有 header 的重叠,我希望每个 header 都粘在彼此下面。
任何关于在哪里添加额外功能的帮助都将是一个巨大的帮助,在此先感谢!
image showing the overlapping sticky header
编辑:source link
好的,道理很简单。只需将 header 添加到您的列表并将 header 的子项添加到该列表。
因此,您可以使用以下代码实现您的要求:
List<Widget> _buildStickySliverListTest(ListCount sliverList) {
var widgetList = List<Widget>();
for (int index = 0; index < sliverList.data.length; index++) {
widgetList
..add(
SliverAppBar(
automaticallyImplyLeading: false,
title: Text("Header $index"),
pinned: true,
),
)
..add(
SliverFixedExtentList(
itemExtent: 50.0,
delegate:
SliverChildBuilderDelegate((BuildContext context, int index) {
return Container(
alignment: Alignment.center,
color: Colors.lightBlue[100 * (index % 9)],
child: Text('Sublist item $index'),
);
}, childCount: sliverList.data[index].length),
),
);
}
return widgetList;
}
@override
Widget build(BuildContext context) {
var list1=["a","b","c"];
var list2=["a","b","c","d","e"];
var list3=["a","b"];
var list4=["a","b","c","d"];
var data=[list1,list2,list3,list4];
var sliverList=ListCount(data);
return Scaffold(
appBar: AppBar(
title: Text("Sticky Sliver List"),
),
body: CustomScrollView(
slivers: _buildStickySliverListTest(sliverList),
),
);
}
此外,为 ListCount 创建一个 class,如下所示,
class ListCount{
List<List<String>> data;
ListCount(this.data);
}
这样您就可以轻松地建立您的 header 和子列表。根据您的选择实施列表和 header 的逻辑。
我希望这能满足您的要求。
我想我明白了自定义粘性 Header 现在是如何工作的,但我找不到在哪里可以添加停止粘性 Header 的 header 的功能从重叠 我想实现如下图所示的效果,但没有 header 的重叠,我希望每个 header 都粘在彼此下面。 任何关于在哪里添加额外功能的帮助都将是一个巨大的帮助,在此先感谢! image showing the overlapping sticky header
编辑:source link
好的,道理很简单。只需将 header 添加到您的列表并将 header 的子项添加到该列表。
因此,您可以使用以下代码实现您的要求:
List<Widget> _buildStickySliverListTest(ListCount sliverList) {
var widgetList = List<Widget>();
for (int index = 0; index < sliverList.data.length; index++) {
widgetList
..add(
SliverAppBar(
automaticallyImplyLeading: false,
title: Text("Header $index"),
pinned: true,
),
)
..add(
SliverFixedExtentList(
itemExtent: 50.0,
delegate:
SliverChildBuilderDelegate((BuildContext context, int index) {
return Container(
alignment: Alignment.center,
color: Colors.lightBlue[100 * (index % 9)],
child: Text('Sublist item $index'),
);
}, childCount: sliverList.data[index].length),
),
);
}
return widgetList;
}
@override
Widget build(BuildContext context) {
var list1=["a","b","c"];
var list2=["a","b","c","d","e"];
var list3=["a","b"];
var list4=["a","b","c","d"];
var data=[list1,list2,list3,list4];
var sliverList=ListCount(data);
return Scaffold(
appBar: AppBar(
title: Text("Sticky Sliver List"),
),
body: CustomScrollView(
slivers: _buildStickySliverListTest(sliverList),
),
);
}
此外,为 ListCount 创建一个 class,如下所示,
class ListCount{
List<List<String>> data;
ListCount(this.data);
}
这样您就可以轻松地建立您的 header 和子列表。根据您的选择实施列表和 header 的逻辑。
我希望这能满足您的要求。