scaffold

Flutter 使用Navigator进行局部跳转页面

旧街凉风 提交于 2020-08-13 06:33:26
老孟导读:Navigator组件使用的频率不是很高,但在一些场景下非常适用,比如局部表单多页填写、底部导航一直存在,每个tab各自导航场景。 Navigator 是管理路由的控件,通常情况下直接使用 Navigator.of(context) 的方法来跳转页面,之所以可以直接使用 Navigator.of(context) 是因为在 WidgetsApp 中使用了此控件,应用程序的根控件通常是 MaterialApp , MaterialApp 包含 WidgetsApp ,所以可以直接使用Navigator的相关属性。 Navigator用法非常简单,如下: Navigator( initialRoute: '/', onGenerateRoute: (RouteSettings settings) { WidgetBuilder builder; switch (settings.name) { case 'home': builder = (context) => PageA(); break; case 'user': builder = (context) => PageB(); break; } return MaterialPageRoute(builder: builder, settings: settings); }, ) initialRoute

初识顶部导航栏【flutter20个实例之一】

拥有回忆 提交于 2020-08-12 20:18:13
一、老套路,先看样式 右侧图是我的实际开发中业务界面,用作展示而已 二、讲解(后附源码) 1.这里主要是用户AppBar组件 /** AppBar({ Key key, this.leading,//在标题前面显示的一个控件,在首页通常显示应用的 logo;在其他界面通常显示为返回按钮 this.automaticallyImplyLeading = true, this.title,//Toolbar 中主要内容,通常显示为当前界面的标题文字 this.actions,//一个 Widget 列表,代表 Toolbar 中所显示的菜单,对于常用的菜单,通常使用 IconButton 来表示;对于不常用的菜单通常使用 PopupMenuButton 来显示为三个点,点击后弹出二级菜单 this.flexibleSpace,//一个显示在 AppBar 下方的控件,高度和 AppBar 高度一样,可以实现一些特殊的效果,该属性通常在 SliverAppBar 中使用 this.bottom,//一个 AppBarBottomWidget 对象,通常是 TabBar。用来在 Toolbar 标题下面显示一个 Tab 导航栏 this.elevation = 4.0,//纸墨设计中控件的 z 坐标顺序,默认值为 4,对于可滚动的 SliverAppBar,当 SliverAppBar

对编程中“脚手架”的理解

南笙酒味 提交于 2020-08-12 10:02:35
在阅读Vue(前端框架)以及Spring(Java框架)相关的文章时,经常会看到“脚手架”的概念。 脚手架,英文scaffolding。 编程的世界来源于现实的世界,那么现实世界中的“脚手架”是什么呢? 脚手架一般理解是建筑中使用的设备工具,为了保证各施工过程顺利进行而搭设的工作平台。 Stack Overflow上有问答: What is scaffolding? Is it a term for a particular platform? Scaffolding is a meta-programming method of building database-backed software applications. It is a technique supported by some model-view-controller frameworks, in which the programmer may write a specification that describes how the application database may be used. The compiler uses this specification to generate code that the application can use to create, read, update

Flutter实现不规则底部导航栏

爷,独闯天下 提交于 2020-08-11 19:54:11
更多文章请查看 lutter从入门 到精通 实现底部导航栏并点击切换页面可简述为有三种方式 TabBar + TabBarView BottomNavigationBar + BottomNavigationBarItem 自定义 BottomAppBar 在这里 使用 BottomAppBar 来实现 /** * 有状态StatefulWidget * 继承于 StatefulWidget,通过 State 的 build 方法去构建控件 */ class BotomeMenumBarPage extends StatefulWidget { ////通过构造方法传值 BotomeMenumBarPage(); //主要是负责创建state @override BotomeMenumBarPageState createState() => BotomeMenumBarPageState(); } /** * 在 State 中,可以动态改变数据 * 在 setState 之后,改变的数据会触发 Widget 重新构建刷新 */ class BotomeMenumBarPageState extends State<BotomeMenumBarPage> { BotomeMenumBarPageState(); @override void initState() { //

Flutter学习笔记(38)--自定义控件之组合控件

ε祈祈猫儿з 提交于 2020-08-11 02:44:25
如需转载,请注明出处: Flutter学习笔记(38)--自定义控件之组合控件 在开始之前想先写点其他的,emm...就是今天在学习到自定义控件的时候,由于自定义控件这块一直是我的短板,无论是Android原生开发还是Flutter,对我来说都是致命伤,内心深处不知道为什么就是很抵触...学着学着就突然感觉特烦躁, 不知道自己现在学这些有什么用,有什么意义,工作中的项目也用不上,年前换工作的时候,去快手面过Flutter的岗位,很遗憾二面没有通过,我自己也不死心,想好好准备准备再去试一下,也算是自己的一个小目标吧。 梦想总是要有的,万一不小心实现了呢!随便发几句牢骚,平复下心情,革命尚未成功,同志仍需努力!按照计划一步一步来吧! ---------------------------------------------------------- 正文 ------------------------------------------------------------- Flutter中的自定义控件其实和Android中的很类似,都有组合控件、自绘控件。 组合控件就是将通用的控件封装起来,其内部由多个小控件组合起来实现的,比如说公用的title栏,其实和我们平时写页面的时候没什么区别。 自绘控件就是继承RenderObjectWidget

一步步入门:NetCore WebApi (包含搭建Swagger)

本小妞迷上赌 提交于 2020-08-11 02:43:07
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 首先,本篇教程为基础教程,大牛请翻过,小白值得一看 如下: 1、准备数据 create database StudentDB go use StudentDB go create table Student ( StudentId varchar ( 50 ) primary key , StudentSex nvarchar ( 2 ), StudentName nvarchar ( 50 ), StudentAge int , CreateDate datetime ) insert into Student values ( newid (), ' 女 ' , ' 王娜 ' , 18 , getdate ()) insert into Student values ( newid (), ' 女 ' , ' 李丽 ' , 19 , getdate ()) insert into Student values ( newid (), ' 女 ' , ' 阿卜杜拉 ' , 17 , getdate ()) insert into Student values ( newid (), ' 女 ' , ' 高骏花 ' , 20 , getdate ()) insert into Student values ( newid (),

Spring Cloud升级之路

本秂侑毒 提交于 2020-08-10 12:06:14
本系列示例与胶水代码地址: https://github.com/HashZhang/spring-cloud-scaffold 负载均衡Ribbon替换成Spring Cloud Load Balancer Spring Cloud Load Balancer 并不是一个独立的项目,而是 spring-cloud-commons 其中的一个模块。 项目中用了 Eureka 以及相关的 starter,想完全剔除 Ribbon 的相关依赖基本是不可能的,Spring 社区的人也是看到了这一点,通过配置去关闭 Ribbon 启用 Spring-Cloud-LoadBalancer 。 spring.cloud.loadbalancer.ribbon.enabled=false 关闭ribbon之后,Spring Cloud LoadBalancer就会加载成为默认的负载均衡器。 Spring Cloud LoadBalancer 结构如下所示: 其中: 全局只有一个 BlockingLoadBalancerClient ,负责执行所有的负载均衡请求。 BlockingLoadBalancerClient 从 LoadBalancerClientFactory 里面加载对应微服务的负载均衡配置。 每个微服务下有独自的 LoadBalancer , LoadBalancer

Flutter学习笔记(36)--常用内置动画

送分小仙女□ 提交于 2020-08-09 10:51:14
如需转载,请注明出处: Flutter学习笔记(36)--常用内置动画 Flutter给我们提供了很多而且很好用的内置动画,这些动画仅仅需要简单的几行代码就可以实现一些不错的效果,Flutter的动画分为补间动画和基于物理的动画,基于物理的动画我们先不说。 补间动画很简单,Android里面也有补间动画,就是给UI设置初始的状态和结束状态,经过我们定义的一段时间,系统去帮助我们实现开始到结束的过渡变化,这就是补间动画。 今天我们要看的Flutter的内置动画就是补间动画,根据Flutter提供的动画组件,我们去设置初始、结尾的状态,并且定义一下这个变化过程所需要的时间,再经过系统的处理(其实就是setState())来达到动画的效果。 接下来我们会写一下常用的内置动画组件,并且提供一下动画效果的gif,方便大家更直观的去理解。 AnimatedContainer 看到Container我们就会知道这是一个带有动画属性的容器组件,这个组件可以定义大小、颜色等属性,那么我们是不是就可以给这个组件设置初始和结束的大小及颜色的属性值,然后通过系统来帮助我们来补足中间过程的动画呢? 答案是可以的,下面看一下demo和动画效果: class _MyHomePageState extends State<MyHomePage> { double _width = 100.0 ; double

Flutter状态管理Provider

旧城冷巷雨未停 提交于 2020-08-07 04:06:55
在之前的文章中介绍了 Google 官方仓库下的一个状态管理 Provide 。乍一看这俩玩意可能很容易就被认为是同一个东西,仔细一看,这不就差了一个字吗,有什么区别呢。 首先,你要知道的最大的一个区别就是,Provide 被 Provider 干掉了 ...假如你就是用了 Provide 的,你的内心应该已经开始骂了,这不是坑爹吗 。不过幸运的是,你要从 Provide 迁移到 Provider 并不是太难。 Provider 从名字上就很容易理解,它就是用于提供数据,无论是在单个页面还是在整个 app 都有它自己的解决方案,我们可以很方便的管理状态。可以说,Provider 的目标就是完全替代StatefulWidget。 Provider非全局状态管理: import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class HomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('搜索结果'), ), body: Provider<String>.value( /

Flutter 1.17 新 Material motion 规范的预构建动画

邮差的信 提交于 2020-08-07 00:37:00
老孟导读:在 Flutter 1.17 发布大会上,Flutter 团队还发布了新的 Animations 软件包,该软件包提供了实现新的 Material motion 规范的预构建动画。 软件包 pub 地址: https://pub.dev/packages/animations Material motion 规范: https://material.io/design/motion/the-motion-system.html 引入插件,版本号请到 pub 上查看最新版本号: animations: ^1.1.1 Container transform 容器转换模式设计用于包含容器的UI元素之间的转换。此模式在两个UI元素之间创建可见连接。 案例:构建GridView,点击其中一项时跳转到期详情页面: GridView.builder( padding: EdgeInsets.all(8), gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, crossAxisSpacing: 2, mainAxisSpacing: 4), itemBuilder: (context, index) { return OpenContainer( transitionDuration: