我使用 Sliver 在 Flutter 中创建了一个列表(下面的 Sliver 结构):
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
//leading: Icon(Icons.arrow_back),
expandedHeight: 150.0,
pinned: true,
),
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
final item = taskList[index];
return Card()
Card 有一个 Dismissible Widget,在其中封装了一个 ListTile。Dismissible 工作正常,我可以滑动以关闭列表中的单个单元格。
我遇到的问题与我的 ListTile 中的 IconButton 有关。我的目标是,每当我点击 IconButton 时,它应该为单个单元格打开或关闭图标标志,但发生的情况是列表中的所有图标按钮都被切换。通过调查 Dismissible Widget 代码,我可以理解我需要唯一标识每个单元格才能使其工作,我尝试使用 Key 使单元格唯一,但没有奏效。有人能引导我朝着正确的方向前进吗?IconButton 的代码如下,我还尝试向 ListTile 添加一个键,但是没有用,所以我删除了它。
IconButton(
key: Key(item),
icon: Icon(Icons.flag),
color: (isPriority) ? Colors.red : Colors.grey,
onPressed: _toggleFlag,
)