通过单击不同的按钮向ListView.builder
添加不同的元素,可以按照以下步骤实现:
ListView.builder
小部件,并将其分配给一个变量。ListView.builder(
itemCount: _list.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(_list[index]),
);
},
)
_list
来存储要显示的元素。初始时可以为空列表。List<String> _list = [];
FlatButton(
onPressed: () {
_addToList('Button 1');
},
child: Text('Button 1'),
),
FlatButton(
onPressed: () {
_addToList('Button 2');
},
child: Text('Button 2'),
),
// Add more buttons as needed
_list
列表中。void _addToList(String element) {
setState(() {
_list.add(element);
});
}
完整示例代码:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Dynamic ListView'),
),
body: ListViewBuilderDemo(),
),
);
}
}
class ListViewBuilderDemo extends StatefulWidget {
@override
_ListViewBuilderDemoState createState() => _ListViewBuilderDemoState();
}
class _ListViewBuilderDemoState extends State<ListViewBuilderDemo> {
List<String> _list = [];
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
FlatButton(
onPressed: () {
_addToList('Button 1');
},
child: Text('Button 1'),
),
FlatButton(
onPressed: () {
_addToList('Button 2');
},
child: Text('Button 2'),
),
// Add more buttons as needed
ListView.builder(
shrinkWrap: true,
itemCount: _list.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(_list[index]),
);
},
),
],
);
}
void _addToList(String element) {
setState(() {
_list.add(element);
});
}
}
这样,每当点击不同的按钮时,对应的元素就会添加到 ListView.builder
中显示出来。
领取专属 10元无门槛券
手把手带您无忧上云