flutter - Flutter:导航到不同页面时保持状态
问题描述
我有以下代码创建一个 Listview 并在每个项目的末尾添加一个图标。可以点击此图标以突出显示它。
问题是,当我离开页面时,项目被取消选择。我正在使用Navigator.of
加载 Listview:
Navigator.of(context)
.push(MaterialPageRoute<Null>(builder: (BuildContext context) {
return new LikedList();
}));
完整代码:
import 'package:flutter/material.dart';
import './images.dart';
class LikedList extends StatefulWidget {
@override
_LikedListState createState() => _LikedListState();
}
class _LikedListState extends State<LikedList> {
List<bool> _likes = List.filled(ImagesState.likes.length,true);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Liked List'),
),
body: ListView.separated(
separatorBuilder: (context, index) => Divider(),
itemCount: ImagesState.likes.length,
itemBuilder: (context, index) {
final item = ImagesState.likes[index];
return ListTile(
title: Text(item),
trailing: IconButton(
icon: _likes[index]
? Icon(
Icons.favorite_border,
color: Colors.grey,
)
: Icon(
Icons.favorite,
color: Colors.red,
),
onPressed: () {
setState(() {
print(_likes);
_likes[index] = !_likes[index];
print(_likes);
});
},
),
onLongPress: () {
setState(() {
print(ImagesState.likes[index]);
ImagesState.likes.removeAt(index);
});
},
);
},
),
);
}
}
解决方案
推荐阅读
- c# - EF Core-2-2 HasConversion Char(1) to bool
- python - 使用 pandas GroupBy 为每列提供不同的分组
- python - 如何从 Python 中的种子生成比特币密钥/地址?
- android - 删除聊天开头的方法
- jquery - CKEditor 选择下拉链接时插入文本文件
- c# - 按钮单击事件没有响应c#
- jquery - 如何通过单击使用 jquery 和 ajax 的两个按钮之一来交替显示两个图形?
- unit-testing - Saga 单元测试 deepEqual 仍然返回 false
- laravel - 如何自定义 Laravel 应用程序
- reactjs - 带有 ant design-SubMenu 的键盘导航(可访问性)