解决思路,将进度条widget 外面包裹一层statefulWidget ,通过statefulWidgt setState方法局部更新进度条 Future<int?>showDeviceStatus2(context)async{double fountSize=11;returnshowModalBottomSheet<int>(backgroundColor:Colors.transparent,isScrollControlled:true,context:context,builder:(BuildContext context){returnGetBu...
我们可以将dialog的内容部分抽取出来用一个StatefulWidget来实现,如下所示: import 'package:flutter/material.dart'; class MyDialogContent extends StatefulWidget { final List<String> cuntries; MyDialogContent({Key key, this.cuntries}) : super(key: key); @override _MyDialogContentState createState() =...
setState方法的作用对象是它所指向的一个StatefulWidget,在这个例子中,setState并不是作用于Dialog,而是DialogSample这个组件。 虽然我们是在Dialog内部的RadioList中调用了setState方法,但是此setState方法实际操作对象是DialogSample,如下图所以: 解决方案 1为Dialog单独设置State 我们需要重构一下showDialog方法,具体修改如...
}classRootLayoutMextendsState<RootLayout>implementsOnDialogClickListener { String str= "show simple dialog"; String showMsg= "show simple dialog"; @overridevoidonOk() { print('onOK'); setState(() { showMsg= str + " onOK Click"; }); } @overridevoidonCancel() { print('onCancel'); se...
很多人在用showDialog的时候应该都遇到过这个问题,使用showDialog后,通过setState()无法更新当前dialog。其实原因很简单,因为dialog其实是另一个页面,准确地来说是另一个路由,因为dialog的关闭也是通过navigator来pop的,所以它的地位跟你当前主页面一样。这个概念一定要明确,因为无论在Android或iOS中,daliog都是依附于当...
setState(() { if(!textStr.isEmpty){ textStr=value; } }); }); } 1. 2. 3. 4. 5. 6. 7. 8. 9. modeBottomDialog: modeBOttomDialog 通常我用来实现一键分享的功能的实现 (如分享到微信微博QQ等 ) 如图: 具体代码实现: Future _modeBottomDialog()async{ ...
现在,我创建了一个新的状态完整类,它包含您的对话框主体。
最终小萌新采用方式:启动页定时器时间到了后,然后发送广播(eventBus)到主页面,然后setState的方式改变bShowHome = true; 进而刷新页面,重新渲染即可! SplashScreen.dart 粘贴一把,其中eventbus-https://pub.dev/packages/event_bus#-installing-tab-用法https://pub.dev/packages/event_bus#-example-tab- ...
dialog 的提示shape:Border.all(),// dialog 的操作按钮,actions 的个数尽量控制不要过多,否则会溢出 `Overflow`actions:<Widget>[// 点击增加显示的值FlatButton(onPressed:increase,child:Text('点我增加')),// 点击减少显示的值FlatButton(onPressed:decrease,child:Text('点我减少')),// 点击关闭 dialog,...
三,Dialog 状态保持 假如有个需求,需要在弹出的Dialog显示当前被改变的值,然后通过按钮可以修改这个值 ,该如何实现。相信很多小伙伴都会这么认为,通过setState来修改不就行了吗,没错,我一开始的确这么去实现的,我们先看下代码好了,增加一个DialogState按钮,然后指向对应的点击事件。