nic*_*tdr 2 flutter flutter-sliver
我试图在 CustomScrollView 中添加 Sliverlist 的动态列表,但它似乎不起作用。该方法正确返回了条子列表,我通过调试验证了这一点。这是我想要实现的示例代码
CustomScrollView(
key: PageStorageKey<String>(myKey),
slivers: _getSlivers(model.data, context),
),
Run Code Online (Sandbox Code Playgroud)
这是 _getSlivers 方法:
List<Widget> _getSlivers(List myList, BuildContext context)
{
List<Widget> slivers = myList.map((key) => SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
buildRow(index)
}
},
childCount: myList.length,
),
),
).toList();
return slivers;
}
}
Run Code Online (Sandbox Code Playgroud)
你的_getSlivers不正确,
buildRowSliverList不确定你的model.data或buildRow是什么样子,但这里有一个简单的例子,
class MyApp extends StatefulWidget {
@override
MyAppState createState() => MyAppState();
}
class MyAppState extends State<MyApp> {
List<String> list = ['Title 1', 'Title 2', 'Title 3', 'Title 4', 'Title 5', 'Title 6', 'Title 7', 'Title 8', 'Title 9', 'Title 10', 'Title 11', 'Title 12', 'Title 13', 'Title 14', 'Title 15', 'Title 16', 'Title 17', 'Title 18', 'Title 19', 'Title 20'];
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: CustomScrollView(
//key: PageStorageKey<String>(myKey),
slivers: <Widget>[
SliverAppBar(
title: Text('Test'),
),
_getSlivers(list, context),
]
),
));
}
SliverList _getSlivers(List myList, BuildContext context) {
return SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return buildRow(myList[index]);
},
childCount: myList.length,
),
);
}
buildRow(String title) {
return Padding(padding: const EdgeInsets.all(15.0),child: Text(title, style: TextStyle(fontWeight: FontWeight.bold, fontSize: 18.0)));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4473 次 |
| 最近记录: |