首页 > 解决方案 > 在页面颤动之间导航时保​​持单选按钮值

问题描述

我有以下单选按钮,并希望在用户重新导航到此屏幕时保持其值。目前,当用户转到另一个屏幕并返回时,它默认为拾取选项。

我知道这可以通过 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;
                                                                                              
                                                });
                                              },
                                            ),
                                          ),
                                        ),
                                      ]

标签: flutterdart

解决方案


您可以使用

Navigator.pop(context,DeliveryMethod.pickup);

在你的屏幕上

delivery = await Navigator.push(...);

您可以使用 NotifierValue 重建小部件而无需使用 setState


推荐阅读