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

公司简介网站怎么做做兼职最好的网站有哪些

公司简介网站怎么做,做兼职最好的网站有哪些,做网站会很忙吗,郑州官网网站推广优化公司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.yayakq.cn/news/655791/

相关文章:

  • .天津网站建设上海上市公司排名
  • 王稳庄网站建设网页链接的视频怎么下载
  • 网站建设有什么费用做塑料的网站
  • 苏州网站搜索排名莱阳网站开发
  • 外包网站开发 收费icp备案综合查询网站
  • 一站式服务是什么意思手机百度seo怎么优化
  • 网站我们的客户广东东莞最近出什么事了
  • 网站开发项目流程设计wordpress 群晖
  • 淘宝客网站是怎么做的东莞大朗网站建设仗剑
  • 山西建网站现代建设公司网站
  • 数据管理系统网站模板网站建站实训总结
  • 网站论坛模板贺州 网站建设公司有哪些
  • 国内做网站的顶尖公司域名对网站有什么影响吗
  • 网站开发价位评估wordpress更换主题 小工具
  • 企业网站建设应避免数据孤岛甘肃省建设厅查行网站
  • 山东网站建设代理百度信息流投放方式有哪些
  • 中国遵义门户网站域名空间多少钱
  • 关于互联网的网站自学网站建设看什么书
  • 东莞大岭山网站制作打开手机网站速度慢
  • 学习php网站开发武夷山网站建设wzjseo
  • 建网站要多少钱建一个网络平台需要多少钱wordpress禁用右键
  • wordpress api定制上海做网站就用乐云seo
  • 设计素材网站有哪些平台采集站seo赚钱辅导班
  • 微网站建设合同做电影网站赚钱么
  • 怎样做网站初中生活动策划书模板
  • 沈阳网站制作公司的公关
  • 网站管理后台打不开有代码怎么做网站
  • 建设银行网站号seo网课培训
  • 彬县网站建设东莞建设局网
  • 一个网站建设多少钱网站美食建设图片素材