scaffold

Flutter的教程:ListView

十年热恋 提交于 2020-04-27 19:23:19
本文学习一下列表widget,是最常见的需求 在Flutter中,用ListView来显示列表项,支持垂直和水平方向展示,通过一个属性我们就可以控制其方向 1.水平的列表 2.垂直的列表 3.数据量非常大的列表 4.内置的ListTile(挺好用的) 4.内置的ListTile(挺好用的),先看下这个widget,在下面的listView中将直接使用 /* * * ListTile */ import ' package:flutter/material.dart ' ; void main() { runApp( new MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( title: " ListTile " , home: new Scaffold( appBar: new AppBar( title: new Text( " ListTile " ), ), body: new MyCard(), ), ); } } class MyCard extends StatefulWidget { @override State <StatefulWidget> createState() {

[Flutter] 写第一个 Flutter app,part1 要点

十年热恋 提交于 2020-04-27 19:22:59
模拟器中调试元素的布局:   Android Studio 右侧边栏 Flutter Inspector,选择 Toggle Debug Paint 打开。 格式化代码:   编辑器中右键 Reformat Code with dartfmt。 使用外部功能包(https://pub.dartlang.org/flutter):   把外部包名加到 pubspec.yaml 的 dependencies 依赖中,运行 flutter packages get 安装,代码中 import 进来使用。 例子内容解读(https://flutter.io/docs/get-started/codelab):   StatelessWidget 子 Widget 实现 build 方法,Stateless widget 是不变的,意思是它们的属性不能变 - 所有的值都是 final。   StatefulWidget 子 Widget 实现 createState 方法;Stateful widget 维护着 widget 生命周期内可能改变的状态。     实现一个 stateful widget 需要至少两个 class:     1)一个创建了 State 类实例的 StatefulWidget 类。     2)一个 State 类。 // 我们使用了一个 RandomWords

12Flutter页面布局 AspectRatio和Cart卡片组件

风格不统一 提交于 2020-04-27 19:22:31
/* Flutter AspectRatio、Cart卡片组件: AspectRatio的作用是根据设置调整子元素child的宽高比。 AspectRatio首先会在布局限制条件允许的范围内尽可能的扩展,widget的高度是由宽度和比率决定的。 类似于BoxFit中的contain,按照固定比率去尽量占满区域。 如果在满足所有限制条件过后无法找到一个可行的尺寸,AspectRatio最终将会去优先适应布局限制条件,而忽略所设置的比率。 */ main.dart import ' package:flutter/material.dart ' ; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { // TODO: implement build return MaterialApp( home: Scaffold( appBar: AppBar( title: Text( ' AspectRatio、Cart卡片组件 ' ), ), body: HomeContent(), ), ); } } class HomeContent extends StatelessWidget { @override

mac+docker+jenkins+gitlab+k8s+springboot从0搭建cicd

点点圈 提交于 2020-04-25 01:38:46
本文采用brew安装的jenkins;docker利用镜像安装的gitlab;利用docker利用镜像搭建的本地私有镜像仓库,利用k8s搭建了一套jenkins流水线来实现本地提交代码触发微服务部署的一套流水线。 1. jenkins的安装 jenkins安装的方式有很多种,可以在mac系统上利用brew install jenkins来安装,也可以利用docker image的方式安装,当然也可以采用k8s的方式来安装; homebrew的方式: brew install jenkins #安装 brew services start jenkins #启动 在浏览器输入http://localhost:8080/或者http://本机ip:8080/即可验证jenkins是否ok,会弹出一个让你输入密码的页面,密码在这个地方查找: cat secrets/initialAdminPassword 在Jenkins->Manage jenkins->Avaiable->search搜索框输入pipeline,来安装pipeline插件和gitlab插件,也可以再多安装一个blue ocean,这样流水线的ui会好看一些,安装插件的时间会比较就一些,需要耐心等待。 插件安装完之后,点击新建一个流水线,图是这样的,这就代表安装jenkins以及插件过程已经完成了。 2

Flutter基础系列之入门(一)

為{幸葍}努か 提交于 2020-04-24 16:59:36
1.Flutter是什么? 官方介绍 :Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。 从官方介绍可以看到,Flutter有如下特点: 跨平台:现在Flutter至少可以跨4种平台,甚至支持嵌入式开发。我们常用的有Linux、Android、IOS,甚至可以在谷歌最新的操作系统上Fuchsia进行运行,经过第三方扩展,甚至可以跑在MacOS和Windows上,到目前为止,Flutter算是支持平台最多的框架了,良好的跨平台性,直接带来的好处就是减少开发成本。 原生用户界面: 它是原生的,让我们的体验更好,性能更好。用官方的话讲就是平滑而自然的滑动效果和平台感知,为您的用户带来全新的体验。 开源免费:我们只要学会并使用,这些都是免费的。 现在 越来越多的公司 加入了Flutter阵容:阿里巴巴、京东、腾讯、头条.... 这里,我们通过官方的一张图来看一下Flutter的架构: Flutter Framework:这是一个纯 Dart实现的 SDK,它实现了一套基础库,自底向上, 用于处理动画、绘图和手势等。并且基于绘图封装了一套 UI组件库,细分为两种风格的组件(Material和Cupertino

超过百万的StackOverflow Flutter 问题

不打扰是莪最后的温柔 提交于 2020-04-18 06:47:21
老孟导读:今天分享StackOverflow上高访问量的20大问题,这些问题给我一种特别熟悉的感觉,我想你一定或多或少的遇到过,有的问题在stackoverflow上有几十万的阅读量,说明很多人都遇到了这些问题,把这些问题整理分享给大家,每期20个,每隔2周分享一次。 如何实现Android平台的wrap_content 和match_parent 你可以按照如下方式实现: 1、Width = Wrap_content Height=Wrap_content: Wrap( children: <Widget>[your_child]) 2、Width = Match_parent Height=Match_parent: Container( height: double.infinity, width: double.infinity,child:your_child) 3、Width = Match_parent ,Height = Wrap_conten: Row( mainAxisSize: MainAxisSize.max, children: <Widget>[*your_child*], ); 4、Width = Wrap_content ,Height = Match_parent: Column( mainAxisSize: MainAxisSize.max,

超过百万的StackOverflow Flutter 问题

試著忘記壹切 提交于 2020-04-17 14:33:27
【推荐阅读】微服务还能火多久?>>> 老孟导读:今天分享StackOverflow上高访问量的20大问题,这些问题给我一种特别熟悉的感觉,我想你一定或多或少的遇到过,有的问题在stackoverflow上有几十万的阅读量,说明很多人都遇到了这些问题,把这些问题整理分享给大家,每期20个,每隔2周分享一次。 如何实现Android平台的wrap_content 和match_parent 你可以按照如下方式实现: 1、Width = Wrap_content Height=Wrap_content: Wrap( children: <Widget>[your_child]) 2、Width = Match_parent Height=Match_parent: Container( height: double.infinity, width: double.infinity,child:your_child) 3、Width = Match_parent ,Height = Wrap_conten: Row( mainAxisSize: MainAxisSize.max, children: <Widget>[*your_child*], ); 4、Width = Wrap_content ,Height = Match_parent: Column( mainAxisSize:

Is there a way to generate a rails scaffold without the views?

荒凉一梦 提交于 2020-03-17 04:09:57
问题 Is there a way to generate a rails scaffold without the views, there has to be a better way then generating the scaffold and deleting the views and the view specs. 回答1: You can use rails g resource Foo bar:text 回答2: If you would like to have the controllers generated in the normal fashion, try this: rails g resource Foo bar:text rails g scaffold_controller Foo --skip-template-engine The first command generates the model and the second one uses the generated model to create the controller

Flutter全面屏适配

十年热恋 提交于 2020-02-26 11:22:20
笔者在这篇文章 ReactNative全面屏(Android)适配问题 提及了现在的全面屏问题,不仅是Android平台,IOS平台也是,给我的感觉就是手机越来越长了。 现在的手机长宽比早就不是之前的16:9了,比如iphoneX 的长宽比为13:6,而现在多数的Android手机都到了19.5:9,有的甚至达到了21:9。 基于科技的发展(适配的血泪史),Flutter开发自然也需要注意这个问题。 在Flutter开发中,通常使用Scaffold的appBar和bottomNavigationBar组件的页面是没有适配问题,它内部对全面屏进行了适配。 适配问题主要是出现在没有使用Scaffold的情况下。 看一下这段代码,没有使用Scaffold: class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: Container( color: Colors.white, child: Column( mainAxisAlignment: MainAxisAlignment

webview显示详情页,拦截点击事件拨打电话

时光毁灭记忆、已成空白 提交于 2020-01-06 17:13:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 加载html详情页面 一、添加依赖 webview_flutter: ^0.3.10+3 # 打开网址、发送邮件、拨打电话、以及发送信息功能 url_launcher: ^5.1.0 二、使用 import 'package:webview_flutter/webview_flutter.dart'; import 'package:url_launcher/url_launcher.dart'; class ServiceDetail extends StatelessWidget { final String url; ServiceDetail(this.url); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("服务详情"), centerTitle: true, ), body: WebView( initialUrl: url, navigationDelegate: (NavigationRequest request) { if (request.url.startsWith('tel:')) { launch(request.url); return