Flutter中Slide_to_act组件返回页面后重置状态的问题
解决Slide_to_act组件返回原页面后状态不重置的问题
要解决返回后组件保持已完成状态的问题,你可以通过GlobalKey获取组件状态并手动重置,步骤如下:
- 首先在页面的State类中定义一个GlobalKey:
final GlobalKey<SlideActionState> _slideActionKey = GlobalKey();
- 给你的
SlideAction组件绑定这个key:
SlideAction( key: _slideActionKey, // 添加这一行 height: 70, sliderRotate: false, alignment: Alignment.centerRight, onSubmit: () async { // 等待新页面返回 await slideAnimated_push( context, ConfirmPage( total: summedPrice.toInt(), slevee: slevee)); // 页面返回后重置组件状态 _slideActionKey.currentState?.reset(); }, innerColor: Colors.white, outerColor: StGreen, elevation: 1, text: 'Slide to Confirm', textStyle: const TextStyle( fontFamily: 'RaleWay', fontSize: 20, color: Colors.white, ), ),
原理是通过GlobalKey获取SlideAction的状态实例,调用其内置的reset()方法就能将组件恢复到初始未滑动的状态。注意要确保slideAnimated_push方法返回的是Future(类似原生Navigator.push),这样才能在页面返回后执行重置操作。
内容的提问来源于stack exchange,提问作者SakaS
相关产品推荐
相关产品推荐

