flutter - 如何在 Flutter 中获取列表视图项目内单击按钮的索引?
问题描述
App screenshot 查看屏幕截图上的删除图标按钮。我想获取单击按钮的索引以删除列表视图的选定项目。我应该怎么办?谢谢您的帮助!
解决方案
在这个例子中,我展示了如何轻松地做到这一点,创建一个包含项目名称的列表和一个返回小部件的函数:
class HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
final List<String> items = ['item1', 'item2', 'item3']; //creating a list of the title of the items
Widget itemWidget({String text, VoidCallback onPressed}) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Row( //widget that will be called on the ListView
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Icon(Icons.account_circle, size: 50,),
Text(text, style: TextStyle(fontSize: 20),), //receiving the text
IconButton(
icon: Icon(Icons.delete),
onPressed: onPressed, //receiving the function
),
],
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
return itemWidget(
text: items[index],
onPressed: () {
setState(() {
items.removeAt(index); //remove the item at the current index
});
},
);
},
),
);
}
}
用户界面:
推荐阅读
- graphql - 如何在 GraphQL 上添加适配器以在模式中将蛇案例转换为骆驼案例
- javascript - Sanctuary js 执行 2 步有条件的管道
- light-4j - 是否可以在 light-4j 请求中显示额外的查询参数返回错误
- azure-devops - Azure DevOps Backlogs:如何处理子功能(功能中的功能)?
- ruby - 为什么 let(:counter) { 0 } 在示例中返回 nil?
- scala - 运行后台任务以更新缓存
- excel - 如果公式返回包含“@”的值,则返回空白
- objective-c - 如何制作一个支持 Swift 导入的 Objective-C 静态链接框架
- react-native - 深度链接到具有不同参数的已打开屏幕。可能吗?
- c++ - 内联变量的多次破坏