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

visual studio网站开发教程网站开发常用软件

visual studio网站开发教程,网站开发常用软件,企业软件项目管理系统,国家建设部官方网站1.让界面之间可以嵌套且执行动画。 2.界面的添加遵循先进后出原则。 3.需要使用AnimateView#xff0c;请看我上一篇博客。 演示#xff1a; 代码#xff1a; Stack: import package:flutter/cupertino.dart;///栈#xff0c;先进后出 class KqWidgetStack {final Lis…1.让界面之间可以嵌套且执行动画。 2.界面的添加遵循先进后出原则。 3.需要使用AnimateView请看我上一篇博客。 演示 代码 Stack: import package:flutter/cupertino.dart;///栈先进后出 class KqWidgetStack {final ListWidget _stack [];///入栈push(Widget obj) {_stack.add(obj);}///出栈Widget? pop() {if (_stack.isEmpty) {return null;} else {return _stack.removeLast();}}///栈长度length() {return _stack.length;}///清除栈clear() {_stack.clear();} }StackView: import package:flutter/cupertino.dart; import package:kq_flutter_widgets/widgets/animate/animate_view.dart; import package:kq_flutter_widgets/widgets/stackview/stack.dart;class StackView extends StatefulWidget {///初始显示的界面final Widget initChild;///state回调。获取state后方便后续界面操作。final void Function(StackViewState state)? stateCallback;const StackView({super.key,required this.initChild,this.stateCallback,});overrideStateStatefulWidget createState() StackViewState(); }class StackViewState extends StateStackView {final KqWidgetStack _stack KqWidgetStack();bool _isOpen true;Widget? _previousWidget;Widget? _currentWidget;overridevoid initState() {super.initState();_currentWidget widget.initChild;widget.stateCallback?.call(this);}overrideWidget build(BuildContext context) {if (_currentWidget null) {return Container();} else if (_previousWidget null) {return _isOpen? AnimateView(animate: TranslationAnimate(angle: TranslationAnimateDirection.bottomToTop.angle,type: TranslationAnimateType.translateIn),child: _currentWidget!,): AnimateView(animate: TranslationAnimate(angle: TranslationAnimateDirection.topToBottom.angle,type: TranslationAnimateType.translateOut),child: _currentWidget!,);} else {return _isOpen? Stack(children: [AnimateView(animate: TranslationAnimate(angle: TranslationAnimateDirection.bottomToTop.angle,type: TranslationAnimateType.translateOut),isNeedFlashEveryTime: true,child: _previousWidget!,),AnimateView(animate: TranslationAnimate(angle: TranslationAnimateDirection.bottomToTop.angle,type: TranslationAnimateType.translateIn),isNeedFlashEveryTime: true,child: _currentWidget!,),],): Stack(children: [AnimateView(animate: TranslationAnimate(angle: TranslationAnimateDirection.topToBottom.angle,type: TranslationAnimateType.translateOut),isNeedFlashEveryTime: true,child: _previousWidget!,),AnimateView(animate: TranslationAnimate(angle: TranslationAnimateDirection.topToBottom.angle,type: TranslationAnimateType.translateIn),isNeedFlashEveryTime: true,child: _currentWidget!,),],);}}addWidget(Widget page) {_isOpen true;_previousWidget _currentWidget;_currentWidget page;if (_previousWidget ! null) {_stack.push(_previousWidget!);}print(stack size${_stack.length()});setState(() {});}///回退返回上一个界面。///[bool] 返回true表示成功返回上一级///返回false表示返回失败已是最后一个界面不可继续返回。bool back() {_isOpen false;_previousWidget _currentWidget;_currentWidget _stack.pop();print(stack size${_stack.length()});setState(() {});if (_stack.length() 1) {return true;} else {return false;}}overridevoid dispose() {super.dispose();_stack.clear();} }demo: import package:flutter/material.dart; import package:get/get.dart; import package:kq_flutter_widgets/widgets/button/kq_small_button.dart; import package:kq_flutter_widgets/widgets/stackview/stack_view.dart; import package:kq_flutter_widgets/widgets/titleBar/kq_title_bar.dart;class StackViewDemo extends StatefulWidget {const StackViewDemo({super.key});overrideStateStatefulWidget createState() StackViewDemoState(); }class StackViewDemoState extends StateStackViewDemo {StackViewState? state;overrideWidget build(BuildContext context) {return Scaffold(appBar: KqHeadBar(headTitle: StackView演示,back: () {Get.back();},),body: StackView(initChild: Column(children: [const Text(我是首页),KqSmallButton(title: 打开新页面,onTap: (disabled) {state?.addWidget(TestPage1(state: state!));},),Expanded(child: Container(color: Colors.purple,)),],),stateCallback: (StackViewState state) {this.state state;},),);} }class TestPage1 extends StatelessWidget {final StackViewState state;const TestPage1({super.key, required this.state});overrideWidget build(BuildContext context) {return Column(children: [const Text(我是TestPage1),KqSmallButton(title: 返回,onTap: (disabled) {state.back();},),KqSmallButton(title: 打开新页面,onTap: (disabled) {state.addWidget(TestPage2(state: state));},),Expanded(child: Container(color: Colors.amber,)),],);} }class TestPage2 extends StatelessWidget {final StackViewState state;const TestPage2({super.key, required this.state});overrideWidget build(BuildContext context) {return Column(children: [const Text(我是TestPage2),KqSmallButton(title: 返回,onTap: (disabled) {state.back();},),KqSmallButton(title: 打开新页面,onTap: (disabled) {state.addWidget(TestPage3(state: state));},),Expanded(child: Container(color: Colors.cyan,)),],);} }class TestPage3 extends StatelessWidget {final StackViewState state;const TestPage3({super.key, required this.state});overrideWidget build(BuildContext context) {return Column(children: [const Text(我是TestPage3),KqSmallButton(title: 返回,onTap: (disabled) {state.back();},),Expanded(child: Container(color: Colors.blueAccent,)),],);} }
http://www.w-s-a.com/news/392862/

相关文章:

  • 搜索引擎网站录入wordpress怎么修改导航
  • 业务接单网站重庆网站制
  • 绿色农产品网站景区网站建设策划方案
  • 服务器做ssr后还可以做网站吗品牌形象设计公司
  • 太原网站制作计划wordpress创建文章
  • 网站优化要怎么做seo网站关键词优化报价
  • 公司网站友情链接怎么做副链华为荣耀手机官网
  • 一条龙做网站旅游网页设计模板图凡科
  • 中山网站建设哪家便宜在中国做外国网站怎么收钱
  • 网站优化大计孝感注册公司
  • 设计接单app平台有哪些在线网站seo诊断
  • 兰州网站建设推广现代营销手段有哪些
  • 郴州网站seo优化网络安全哪个培训班比较好
  • 做网站需要记哪些代码企业网站建设思路
  • 重庆自助建站模板网络服务器配置与管理
  • 外贸网站怎样做小程序买量平台
  • 中山精品网站建设机构海外留学网站建设方案
  • 长春网站建设工作如何取消wordpress页脚
  • 忻府网站建设排名网络管理系统官网
  • 张家港外贸网站建设国医堂网站平台建设
  • 水冶那里有做网站的对于网站链接优化有哪些建议
  • 宝安中心地铁站是几号线化妆品网站做的好的
  • 海宁营销型网站设计企业融资是什么意思
  • 淘宝客做网站要钱吗网站开发试题库
  • 10g空间网站做视频网站网站建设找超速云
  • 一元购网站怎么做企业网站源码cms
  • 域名不变 网站改版临沂企业网站建站模板
  • 天河网站建设信科网络外包公司和公司直招哪个好
  • 网站制作哈尔滨聊天系统源码
  • 网站建设朋友圈素材青白江建设网站