scaffold

Flutter 路由 页面间跳转和传参 返回

霸气de小男生 提交于 2021-01-09 20:51:35
Navigator Navigator用来管理堆栈功能(即push和pop),在Flutter的情况下,当我们导航到另一个屏幕时,我们使用Navigator.push方法将新屏幕添加到堆栈的顶部。当然,这些pop方法会从堆栈中删除该屏幕。 在push的时候使用自定义方法构建一个路由 Navigator.push( context, MaterialPageRoute(builder:(context) => new InfoPage(product: products[index])) ); 这种方式可以传递参数。 使用Navigator的pop返回可返回上一级,并携带一个参数 Navigator.pop(context, ' 携带参数 ' ); push和pushNamed push与pushNames运行效果相同,只是接口的调用方式不同, 都是将一个界面压入栈中. 区别在于, push是亲手把界面扔入栈中, 而pushNames则是通过点名的方式通过router让界面自己进入栈中 // push的调用方法 Navigator.push(context, new MaterialPageRoute( builder: (context) { return Scaffold( appBar: AppBar( title: Text( ' 我是新的界面 ' ), ) ); } ));

flutter -------- 页面跳转和传值

让人想犯罪 __ 提交于 2021-01-08 22:57:53
在安卓原生开发中,页面跳转可以用Intent类来具体实现: Intent intent = new Intent(MainActivity. this ,second. class ); startActivity(intent); 页面的传值也有很多种 Flutter的传值方式是路由传值; 例如,我们想传一些关于我们点击的ListView条目的信息。 效果图 代码: final todos = new List<Todo> .generate( 15 , (i) => new Todo( "我是标题 $i", "我是详细内容 $i" )); class Todo { final String title; final String description; Todo( this .title, this .description); } class ToD extends StatelessWidget{ @override Widget build(BuildContext context) { // TODO: implement build return new FirstScreen(todos); } } /** * 第一个页面 */ class FirstScreen extends StatelessWidget { final List<Todo> todos;

Flutter开发之Widget布局和页面导航

泪湿孤枕 提交于 2020-12-19 07:17:25
一、水平布局Row Row控件可以分为非灵活排列和灵活排列两种,灵活的可以在外边加入Expanded使用 两者混用: import 'package:flutter/material.dart' ; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { // TODO: implement build return MaterialApp( title: '' , home: new Scaffold( appBar: new AppBar(title: new Text('hello row' )), body: new Row( children: <Widget> [ Expanded ( // 灵活使用 child: new RaisedButton( onPressed: () {}, color: Colors.blue, child: new Text('Blue Button' ), )), new RaisedButton( onPressed: () {}, color: Colors.green, child: new Text('Green Button' ), ), ], ),

Flutter之路由管理(页面跳转)

放肆的年华 提交于 2020-12-14 13:27:37
路由:核心是 路由映射表 . 如:名字 detail 映射到 DetailPage 页面等 在Flutter中,路由管理主要有两个类:Route和Navigator. Route 一个页面要想被路由统一管理,必须包装为一个Route Navigator 管理所有的Route的Widget,通过一个Stack来进行管理. MaterialApp、CupertinoApp、WidgetsApp它们默认是有插入Navigator的,在需要的时候,只需要直接使用即可. Navigator.of(context) Navigator常用方法: // 路由跳转:传入一个路由对象 Future<T> push<T extendsObject>(Route<T> route) // 路由跳转:传入一个名称(命名路由) Future<T> pushNamed<T extendsObject>( String routeName, { Object arguments, }) // 路由返回:可以传入一个参数 bool pop<T extendsObject>([ T result ]) 命名路由 命名路由是将名字和路由的映射关系,在一个地方进行统一的管理 有了命名路由,就可以通过 Navigator.pushNamed() 方法来跳转到新的页面 命名路由的位置 放在MaterialApp的

使用Northwind数据库的 .NET Core应用你了解多少?

时光怂恿深爱的人放手 提交于 2020-12-11 10:32:02
下载DevExpress v20.2完整版 DevExpress技术交流群2:775869749 欢迎一起进群讨论 通过 DevExpress WPF Controls ,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 在本文中,空白示例项目(.NET Core 3.1)是连接到Northwind数据库。 数据库结构: 您可以使用此示例创建DevExpress项目并体验相关功能,该项目引入 DevExpress ThemedWindow 作为根元素。 要创建一个项目并将其连接到数据库: 1. 创建一个新项目: 2. 选择DevExpress v20.1 WPFBlank App (.NET Core): 3. 指定项目名称,然后单击创建: 4. 将Microsoft.EntityFrameworkCore.SqlServer和Microsoft.EntityFrameworkCore.Tools NuGet程序包添加到项目中: 5. 打开 Package Manager Console 然后运行以下命令,此命令为DbContext和数据库的实体类型生成代码: Scaffold-DbContext "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:

flutter 融云 sdk

…衆ロ難τιáo~ 提交于 2020-12-04 13:36:08
###flutter 融云 sdk ###前言 1.集成 flutter 融云 sdk ,需要一个稳定的 flutter 环境,能正常的创建和运行项目。 2.前期准备融云官网申请开发者账号 通过管理后台的 "基本信息"->"App Key" 获取 AppKey 3.通过管理后台的 "IM 服务"—>"API 调用"->"用户服务"->"获取 Token",通过用户 id 获取 IMToken 4.我知道没图是骗不到人的。先放图,大家看一下最终实现的效果。 集成 sdk 依赖 IM Flutter plugin在项目的 pubspec.yaml 中写如下依赖。 dependencies: flutter: sdk: flutter rongcloud_im_plugin: ^4.0.3 然后在项目路径执行 flutter packages get 来下载 Flutter Plugin。 我们写 2 个 button 和 2 个 text ,分别用来实现 init 和 connect 的事件和状态。 4.初始化 SDK RongIMClient.init(RongAppKey); 5.连接 IM RongIMClient.connect(RongIMToken, (int code, String userId) { print('connect result ' + code

Flutter 组件通信(父子、兄弟)

匆匆过客 提交于 2020-12-01 12:36:29
一,概述     flutter一个重要的特性就是组件化。组件分为两种状态,一种是StatefulWidget有状态组件,一种是StatelessWidget无状态组件。 无状态组件不能更新状态,有状态组件具有类似刷新的机制,可更改状态。   功能模块都可以通过继承两种状态组件实现功能模块封装。组件间通信,一般存在一下两种关系。 父子组件通信 兄弟组件通信        二, 通信实现方式 回调通信 需求“点击子组件,修改父组件的背景颜色与子组件背景颜色一致” 代码实现 //父组件 class ParentWidget extends StatefulWidget { final String title; ParentWidget({Key key,this.title}):super(key:key); @override State<StatefulWidget> createState() { return new ParentWidgetState(); } } class ParentWidgetState extends State<ParentWidget> { Color containerBg = Colors.orange; //回调函数 void changeBackgroundColor(Color newColor){ setState(() {

.net core2.0 中使用DB First

强颜欢笑 提交于 2020-11-19 05:30:44
一、新建一个控制台测试项目   1.1、添加引用  1.2、修改项目文件 1.3、添加红框的内容 <ItemGroup> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.2" /> </ItemGroup> 1.4、进入项目文件夹 dotnet ef dbcontext scaffold -o Models " server=192.168.10.144;User Id=root;Password=root;Database=supbackdb " " Pomelo.EntityFrameworkCore.MySql " 来源: oschina 链接: https://my.oschina.net/u/4265407/blog/3972869

初识.Net Core EF(查询)

时光总嘲笑我的痴心妄想 提交于 2020-10-29 06:04:22
第一步:创建项目( 就控制台而言 ) 第二步,安装EF( 四个步骤 ) (1)install-package microsoft.entityframeworkcore.sqlserver (2)install-package microsoft.entityframeworkcore.tools (3)install-package microsoft.entityframeworkcore.sqlserver.design (4)Scaffold-DbContext "Server=.;Database=users;Uid=sa;Pwd=123456;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models 开始做一个简单的查询功能 这样一个简单的小demo 就完事了,这个例子代码上.net core ef和.net ef上没什么区别的,就是.net core ef需要手动去安装和连接数据库,而.net ef连接数据库用 Model First、DBFirst、Code First 的话,web.config里面就自动生成连接的。 默默学习的小白媛路过,大佬看见什么不足的地方,可提出意见。。。。。。。。。。。 来源: oschina 链接: https://my.oschina.net/u/4302478/blog

CustomScrollView + slivers + SliverAppBar

♀尐吖头ヾ 提交于 2020-10-12 14:13:21
import 'package:flutter/material.dart'; void main()=>runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: CustomScrollViewTestRoute(), ), ); } } class CustomScrollViewTestRoute extends StatelessWidget { @override Widget build(BuildContext context) { return CustomScrollView( slivers: <Widget>[ SliverAppBar( pinned: true, expandedHeight: 250.0, flexibleSpace: FlexibleSpaceBar( title: const Text('Demo'), background: Image.network('http://www.ecobentech.com/img/a.jpg',fit: BoxFit.cover,), ), ), SliverPadding