flutter - 在页面颤动之间导航时保持单选按钮值
问题描述
我有以下单选按钮,并希望在用户重新导航到此屏幕时保持其值。目前,当用户转到另一个屏幕并返回时,它默认为拾取选项。
我知道这可以通过 SharedPreferences 来实现,但我想知道是否还有其他方法。
enum DeliveryMethod { delivery, pickup }
DeliveryMethod _character = DeliveryMethod.pickup;
children: <Widget>[
Expanded(
child: ListTile(
title: const Text('Please deliver'),
leading: Radio(
value: DeliveryMethod.delivery,
groupValue: _character,
onChanged: (value) {
_character = value;
});
},
),
),
),
Expanded(
child: ListTile(
title: const Text('I will pick up'),
leading: Radio(
value: DeliveryMethod.pickup,
groupValue: _character,
onChanged:
(DeliveryMethod value) {
setState(() {
_character = value;
});
},
),
),
),
]
解决方案
您可以使用
Navigator.pop(context,DeliveryMethod.pickup);
在你的屏幕上
delivery = await Navigator.push(...);
您可以使用 NotifierValue 重建小部件而无需使用 setState
推荐阅读
- c# - 没有“IEnumerable”类型的 ViewData 项
' 具有键 'BlockHeight' - android - 让 chrome 检查器更快地查看连接的设备应用程序
- javascript - postMessage 没有推入 dataLayer
- php - 在 onchange 上通过 Ajax 传递一个值
- macos - 带有图像的 macOS Big Sur 工具栏项宽度
- css - Google Material 图标指南 - CSS 定义
- c# - 左键单击 DataGridRows 之间切换时未触发 WPF“ContextMenuClosing”事件
- c# - 在 C# 中打印出面板
- airflow - 通过 slack 的气流调度程序失败通知
- spring - Spring Data:使用 @CreatedBy 为多对多关系添加额外的审计属性到 JoinTable