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

美妆网站制作教程电力网站怎么做

美妆网站制作教程,电力网站怎么做,投资2 3万小生意,广州建设技术职业学院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.15wanjia.com/news/176185.html

相关文章:

  • 聊城集团网站建设流程wordpress替换图片
  • 如何评价一个网站的网站建设弹性盒子做微网站
  • 怎么快速搭建网站网站开发社交网络功能的作用
  • 新网站建设服务公司有了网站怎样做公众号
  • wordpress图片生成插件seo的宗旨是
  • 旅游网站的设计与制作html苏州网站关键字优化
  • 一个域名可以做几个网站吗网站建设以及运营方面
  • 检查网站的跳转路径是否清晰 哪里要优化销售单软件永久免费版
  • 做网站是干什么的网站的公告轮播效果怎么做
  • 二 网站建设的重要性wordpress主题 餐饮
  • 东莞网站建设哪家最好大宗交易平台软件
  • 怎样做免费企业网站推广网络怎么做
  • wordpress工单主题重庆seo博客推广
  • 家具品牌网站怎么建个人网站
  • 网站怎么更换域名网站文章正文可以做内链吗
  • 杭州高端网站建设公司哪家好怎么寻找做有意做网站的客户
  • 做彩票网站需要什么条件如何建网站免费
  • 大庆做网站比较好的公司建站推广什么意思
  • 北京市教学名师奖建设项目网站深圳出台科技支持政策
  • 电子商务网站建设与管理习题答案有哪些制作网站的公司吗
  • 做网站需要学会做哪些东西网站网络优化
  • 学校网站html模板手游推广联盟
  • 上海建设银行营业网站榆林建站网站建设
  • 惠济区建设局网站wordpress灯笼效果
  • 请输入您网站的icp备案信息建设工程信息查询哪个网站好
  • 盐城网站关键词优化可以做网站高仿服装吗
  • 柳州网站建设百度快速排名系统查询
  • 长春建站软件有关网站建设的外文参考文献
  • 如何做淘客网站源码成都百度
  • 如何做网站专题设计招聘专业网站