当前位置: 首页 > news >正文

网站制作 昆明磁力珠

网站制作 昆明,磁力珠,化妆品网站建设模板,bootstrap做的网站flutter开发实战-当前界面无操作60s返回主页实现 当前界面无操作60s返回主页实现,主要是通过Timer来控制,当监听界面是否有pointerDown时候,如果超过60s仍没有操作,则返回主页。 一、Listener Listener是用来用于调用回调以响应…

flutter开发实战-当前界面无操作60s返回主页实现

当前界面无操作60s返回主页实现,主要是通过Timer来控制,当监听界面是否有pointerDown时候,如果超过60s仍没有操作,则返回主页。

一、Listener

Listener是用来用于调用回调以响应常见的指针事件
Listener的属性如下

const Listener({super.key,this.onPointerDown,this.onPointerMove,this.onPointerUp,this.onPointerHover,this.onPointerCancel,this.onPointerPanZoomStart,this.onPointerPanZoomUpdate,this.onPointerPanZoomEnd,this.onPointerSignal,this.behavior = HitTestBehavior.deferToChild,super.child,}) : assert(behavior != null);

可以看出,我们可以通过onPointerDown来判断用户是否触摸到屏幕。

二、新增ListenerTouchTimerWrapper

为Widget添加Timer控制,当触摸了屏幕,取消Timer,重新倒计时。倒计时结束之后,可以执行callback。

void updateTouch() {_timer?.cancel();if (timeoutCallback != null) {_timer = Timer(Duration(milliseconds: milliseconds), timeoutCallback!);}}

完整代码如下

class ListenerTouchTimer {final int milliseconds;Timer? _timer;VoidCallback? timeoutCallback;ListenerTouchTimer({required this.milliseconds,});void startListener({required VoidCallback timeoutCallback}) {this.timeoutCallback = timeoutCallback;updateTouch();}void updateTouch() {_timer?.cancel();if (timeoutCallback != null) {_timer = Timer(Duration(milliseconds: milliseconds), timeoutCallback!);}}void dispose() {_timer?.cancel();}
}

为widget创建Wrapper

/// 无操作回主页
class ListenerTouchTimerWrapper extends StatelessWidget {const ListenerTouchTimerWrapper({super.key,required this.child,this.listenerTouchTimer,});final Widget child;final ListenerTouchTimer? listenerTouchTimer;@overrideWidget build(BuildContext context) {return Listener(onPointerDown: (event) {if (listenerTouchTimer != null) {listenerTouchTimer!.updateTouch();}},child: child,);}
}

三、使用ListenerTouchTimerWrapper

在界面的外层使用ListenerTouchTimerWrapper进行包裹一下。

class DemoPage extends StatefulWidget {const DemoPage({Key? key,required this.arguments,}) : super(key: key);final Map<String, dynamic> arguments;@overrideState<DemoPage> createState() => _DemoPageState();
}class _DemoPageState extends State<DemoPage> {/// 超出60秒自动返回首页ListenerTouchTimer? listenerTouchTimer;@overridevoid initState() {// TODO: implement initStategetAppConfigFromNative();listenerTouchTimer = ListenerTouchTimer(milliseconds: 6000);super.initState();loggerInfo("ChangeClothe initState");if (listenerTouchTimer != null) {listenerTouchTimer!.startListener(timeoutCallback: () {print("_ChangeClotheWaitPageState 超出60秒自动返回首页");if (mounted ) {navigatorBack();}});}}@overridevoid dispose() {// TODO: implement disposeloggerInfo("ChangeClothe dispose");listenerTouchTimer?.dispose();super.dispose();}@overrideWidget build(BuildContext context) {return ListenerTouchTimerWrapper(listenerTouchTimer: listenerTouchTimer,child: Scaffold(body: Container(),),);}void navigatorBack() {NavigatorPageRouter.pop();}
}

四、小结

flutter开发实战-当前界面无操作60s返回主页实现

学习记录,每天不停进步。

http://www.ritt.cn/news/7509.html

相关文章:

  • 昆明软件公司有哪些安顺seo
  • 做网站怎样做网络推广赚钱
  • 滨湖区知名做网站选哪家线上营销活动案例
  • 湘潭网站建设 就问磐石网络专业企业网络搭建
  • 专门做软陶的网站推广接单平台
  • html5做静态网站互联网推广营销方案
  • 建设网站设计专业服务网站推广 方法
  • 网站制作员网络推广的工作内容
  • 网站开发注意seo一个月工资一般多少
  • 网站开发 360浏览器免费创建属于自己的网站
  • 网站开发java好还是php好索引擎优化 seo
  • 网站域名注册商标友链购买网
  • 武汉北京网站建设东莞seo排名优化
  • 怎么开自己的网站临沂今日头条新闻最新
  • 宗亲网站建设建议每日一则新闻摘抄
  • 网站模板有哪些内容佛山旺道seo
  • 网站建设哪家比较好蚂蚁bt
  • dede 网站图标商品标题优化
  • 课程的网站建设精准营销的案例
  • 成都网站建设报价广东seo网站优化公司
  • 网站建设如何包含数据库免费网站收录网站推广
  • 网站开发运营产品经理招聘金蝶进销存免费版
  • 垫江做网站最新seo教程
  • 网站制作模板免费下载app优化建议
  • 网站建设战略app推广接单渠道
  • 小清新网站源码seo排名优化培训怎样
  • 做外贸的如何上国外网站百度客服号码
  • tomcat做网站并发交换链接
  • 网站后期技术维护甘肃省seo关键词优化
  • 兼容ie8的网站模板上海网络优化服务