自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卓原的进化之旅

活到老,学到老

  • 博客(132)
  • 资源 (5)
  • 收藏
  • 关注

原创 Flutter 状态管理之MobX

MobX一直是主要用于JS的主要的状态管理技术。flutter 现在关于状态管理的方案有 Scoped Model,Inherited Widget,Redux for Flutter,甚至是BLoC 。之前写React的时候就有用过mobx,很是喜欢 , 现在发现提供了dart版本,于是来学习一下. 也许会成为最好用的状态管理工具呢介绍MobX只是一个状态管理库,可以很容易地将应用程序的被...

2019-05-17 12:24:21 5530 5

原创 Android混入Flutter以及Android与Flutter通信

从零开始首先,创建一个新的项目文件夹用来存放Android项目和flutter的项目.原生的Android项目我给它命名为AndroidWithFlutterProject.然后创建一个flutter 的 module项目,我命名为flutter_with_android1 :看提示也知道,这个Module就是为了混合进原生的.创建好之后,我们的项目文件夹就变成了这个样子:二者在同...

2019-03-27 13:17:22 1710

原创 Dart 数据类型

Dart的所有东西都是对象。它们都继承自Object,默认是都是null。Dart中支持以下数据类型:Number 数值型String 字符串Boolean 布尔型List 数组Map 键值对Runes ([String]的符文(整数Unicode代码点))数值型 numDart中提供了两种数值类型, 分别是整型int和浮点型double.void main() { ...

2019-03-15 19:32:49 3948

原创 flutter 持久化存储-----数据库sqflite

Flutter中持久化存储数据有多种方案, 一般常用的有 shared_preferences 和 sqfiteshared_preferences: 包含NSUserDefaults(在iOS上)和SharedPreferences(在Android上),为简单数据提供持久存储。数据以异步方式持久保存到磁盘。sqflite: 是一款轻量级的关系型数据库,类似SQLite. 支持iOS...

2019-03-13 16:28:54 12025 9

原创 flutter 修改后台地址并自动打包脚本

脚本内容:@echo off setlocal enabledelayedexpansion set file=D:\Project\sale_aggregator_app\lib\common\constants.dartset "file=%file:"=%" for %%i in ("%file%") do set file=%%~fi echo. set replaced=t...

2019-03-04 12:04:07 1957

原创 颜色透明度 16进制对应表

一、颜色透明度和十六进制对应的表格:透明度16进制100%099%398%597%796%0A95%0D94%0F93%1292%1491%1790%1A89%1C88%1E87%2186%2485%2684%2983%2B82%2...

2019-01-17 16:30:09 12024

原创 flutter 分享插件 : flutter_share_me

已经开始用flutter做项目了 , 最近项目里有个需求 , 分享应用和商品(没错,电商类app) 到facebook,twitter,以及whatsapp.在pub上找了一圈,有俩插件有分享功能, 但不符合要求,于是自己花点时间写了一个.目前只支持Android(我并没有Mac).非常欢迎大家提交pull request和反馈. 一起完善代码!支持分享到facebook , twitter...

2018-12-13 15:29:33 9014 9

转载 Android apk打包命名规则

摘要:前言在日常的开发过程中,许多刚入行的开发者在apk打包命名、应用迭代版本的档案留存管理上都比较混乱——产生这些问题的原因无外乎以下两种:一是之前没有相关的操作经验、头尾不能兼顾;一是公司没有制定对应的规范、无有效参照范例。当然,所谓的规范在业内不会存在唯一的标准与格式(对于规范的理解,本人认为是相对容易让大众接受、理解、掌握的行为准则),所以,本文的目的在于探讨、交流、引导,还望各位不吝赐教...

2018-11-12 14:21:56 5208 1

翻译 React Native集成Touch ID和Face ID

前言:使用Touch ID也称为指纹身份验证在移动应用程序中非常流行。Touch ID功能可保护应用程序并使其成为用户的无缝身份验证流程。许多银行应用程序,如美国银行,发现,大通,使用Touch ID身份验证,实现安全和无缝的身份验证。用户无需在每次登录时键入长密码,只需允许他们使用Touch ID登录即可。使用iPhone X,我们可以使用Face ID身份验证。Touch ID和Fac...

2018-11-12 14:20:23 4514

原创 flutter自定义View(CustomPainter) 之 canvas的方法总结

画布canvas画布是一个矩形区域,我们可以控制其每一像素来绘制我们想要的内容canvas 拥有多种绘制点、线、路径、矩形、圆形、以及添加图像的方法,结合这些方法我们可以绘制出千变万化的画面。虽然,画布可以画这些东西,但是决定这些图形颜色、粗细表现的还是画笔。画笔PaintPaint非常好理解,就是我们用来画图形的工具,我们可以设置画笔的颜色、粗细、是否抗锯齿、笔触形状以及作画风格。通...

2018-11-08 13:28:47 26322 3

原创 flutter 打包apk

前言完成项目时,我们需要将项目打包成一个apk,方便测试以及发布版本.并且发布版本还需要签名,今天把这一系列操作记录下来.App签名创建 keystore如果您有现有keystore,请跳至下一步。如果没有,请通过在运行以下命令来创建一个:keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validit...

2018-11-07 17:11:38 11308 9

原创 CSDN1024勋章获得方法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2018-10-24 22:07:09 3738 8

原创 Flutter中的自定义View的基本流程和相关知识

前言我们都知道官方有很多的Widget供我们使用,但它提供的再多,也无法满足产品和UI的需求,当然,谷歌官方也肯定想到了这一点,所以在flutter中,也是支持自定义View的。在Flutter中与绘制相关的是在Painting层次,具体见下图:这张Flutter架构图我相信大家肯定在不同的文章中见过很多次了。和Flutter自带的Wdiget一样,自定义的Widget也会经过Skia...

2018-10-18 15:15:11 3495

原创 用flutter写一个精美的登录页面

先看效果图;源代码已上传到githubloading…

2018-10-14 00:41:10 37271 5

翻译 flutter概念介绍之 Widget - State- BuildContext - InheritedWidget

本文介绍了Flutter应用程序中Widget,State,BuildContext和InheritedWidget的重要概念。特别注意InheritedWidget,它是最重要且记录较少的小部件之一。难度:初学者前言Flutter中Widget,State和BuildContext的概念是每个Flutter开发人员需要完全理解的最重要概念之一。但是,文档很庞大,并不总是清楚地解释这个概...

2018-10-11 18:09:02 7751 1

原创 flutter FutureBuilder的使用以及防止FutureBuilder不必要重绘的两种方法

前言:我们经常有这样的一个开发场景:一个页面进入之后先进行网络请求,此时显示一个圆圈(等待动画),等网络数据返回时显示一个展示网络数据的布局。例如下图:我们通常的做法是if(data==null){ return CircularProgressIndicator();}else{ return ListView(...);}大致就是数据返回之前我们加载一个组件,等数据返回值后...

2018-10-11 13:23:39 55330 22

原创 国际化 - 使Flutter应用程序多语言

国际化 - 使Flutter应用程序多语言本文介绍了一种使Flutter应用程序多语言的方法,并允许用户选择除智能手机设置中定义的另一种工作语言之外的其他工作语言。难度:中级前言国际化已经多次解释,可以在这里找到关于这个主题的Flutter官方文档。因为我想正确地理解它,但是因为我需要扩展它以满足我的应用程序的要求,所以我决定写下面的文章来分享我的经验并给你一些提示。...

2018-09-22 21:43:45 3829 6

原创 flutter 屏幕适配 字体大小适配

前言:现在的手机品牌和型号越来越多,导致我们平时写布局的时候会在个不同的移动设备上显示的效果不同,比如我们的设计稿一个View的大小是300px,如果直接写300px,可能在当前设备显示正常,但到了其他设备可能就会偏小或者偏大,这就需要我们对屏幕进行适配。安卓原生的话有自己的适配规则,可以根据不同的尺寸建立不同的文件夹,系统会根据当前的设备尺寸取对应的大小的布局。而flutter本身并没有适...

2018-09-21 00:08:21 56107 65

原创 flutter发送短信 打电话 打开链接 打开其他APP

url_launcher用于在移动平台中启动URL的Flutter插件。支持iOS和Android。支持网络,电话,短信和电子邮件方案,以及打开其他app。主要功能有:支持的URL方案该 launch method 方法采用包含URL的字符串参数。可以使用许多不同的URL方案格式化此URL。支持的URL方案取决于底层平台和已安装的应用程序。iOS和Android都支持的常见方案:...

2018-09-20 14:07:00 11192 14

原创 flutter 轮播组件 Swiper

flutter_swiperflutter最强大的siwiper, 多种布局方式,无限轮播,Android和IOS双端适配.先放上github上的几张图看一下效果。✨✨ 新功能更多截图 图就先放到这里,我们看一下用法。安装增加flutter_swiper: ^1.0.6 //请在pub上查看最新版本到项目根目录下的 pubspec.yaml ,并且根目录...

2018-09-19 19:18:54 52485 26

原创 Flutter封装网络请求

diodio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等…我们的网络请求就是在dio的基础上封装的 . 所以要引入dio包.添加依赖dependencies: dio: ^x.x.x // 请使用pub上的最新版本HttpUtil /* * Created by 李卓原 on ...

2018-09-18 22:47:37 15209 9

原创 flutter SliverAppBar

/* * Created by 李卓原 on 2018/9/15. * email: zhuoyuan93@gmail.com * 网络请求封装 */import 'package:dio/dio.dart';class HttpUtil { static HttpUtil instance; Dio dio; Options options; static Ht...

2018-09-17 15:03:19 23447 8

原创 Flutter listview下拉刷新 上拉加载更多 功能实现

下拉刷新在Flutter中系统已经为我们提供了google material design的刷新功能 , 样式与原生Android一样. 我们可以使用RefreshIndicator组件来实现Flutter中的下拉刷新,下面们还是先来看下如何使用吧RefreshIndicator构造方法: const RefreshIndicator({ Key key, ...

2018-09-16 00:34:30 29803 6

原创 flutter 数据存储 SharedPreferences

SharedPreferencesSharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置。以键值对的形式保存设置,属性和数据。在flutter平台也有一个SharedPreferences插件, 在iOS上使用NSUserDefaults,在Android平台使用SharedPreferences,为简单数据提供持久存储。数据以异步方式持久...

2018-09-15 00:18:36 8028

原创 flutter 获取屏幕宽度高度 通知栏高度等屏幕信息

MediaQueryMediaQuery.of(context) 包含了一些屏幕的属性:size : 一个包含宽度和高度的对象,单位是pxprint(MediaQuery.of(context).size); //输出: Size(411.4, 683.4) devicePixelRatio : 返回设备的像素密度 print(MediaQuery.of(...

2018-09-14 19:10:52 36472 2

原创 flutter 生命周期

前言:生命周期是一个组件加载到卸载的整个周期,熟悉生命周期可以让我们在合适的时机做该做的事情, flutter中的State生命周期和android以及React Native的生命周期类似。先看一张生命周期的流程图: 大致可以分为3个阶段:初始化状态变化组件移除初始化State初始化时会依次执行 : 构造函数 > initState &a

2018-09-13 22:20:26 27695 7

原创 flutter TextField 输入框组件

TextField顾名思义文本输入框,类似于Ios中的UITextField和Android中的EditText和Web中的TextInput。主要是为用户提供输入文本提供方便。相信大家在原生客户端上都用过这个功能,就不在做具体介绍了,接下来还是具体介绍下Flutter中TextField的用法。TextField的构造方法: const TextField({ Key ...

2018-09-08 12:35:56 113696 33

原创 flutter 路由与页面跳转

先记录一下相关代码,后续完善内容路由 Route静态路由在Flutter中有着两种路由跳转的方式,一种是静态路由,在创建时就已经明确知道了要跳转的页面和值。另一种是动态路由,跳转传入的目标地址和要传入的值都可以是动态的。OK,还是先来介绍下静态路由从我们开始学习Flutter到现在,相信大家看到最多的肯定是下面的代码void main(){ runApp(new M...

2018-09-07 00:12:17 11194 2

原创 flutter Platform介绍

Platform在dart:io中,提供与Platform类的API奇偶校验,但使用实例属性而不是静态属性。这种差异允许在测试中使用这些API,您可以在其中提供模拟实现。看一下构造方法:class Platform { static int get numberOfProcessors => _numberOfProcessors; static String ge...

2018-09-06 21:13:58 5120

原创 Flutter TabBar

Tab关键元素TabController 这是Tab页的控制器,用于定义Tab标签和内容页的坐标,还可配置标签页的切换动画效果等。TabController一般放入有状态控件中使用,以适应标签页数量和内容有动态变化的场景,如果标签页在APP中是静态固定的格局,则可以在无状态控件中加入简易版的DefaultTabController以提高运行效率,毕竟无状态控件要比有状态控件更省资源,运行...

2018-09-05 22:37:37 9680

原创 Flutter 滑动列表组件 ListView&&GridView

前言: 今天就来介绍下Flutter中的列表组件ListView和网格组件GirdView,嗯,果然是Google家的亲儿子,连名字都和Android里的一模一样。 好的吧,我们还是来看下这两个Widget的用法吧ListViewListView就是我们常见的列表组件,在平时的应用开发中十分的常见,无论你做的是什么类型的应用都会多多少少会用到ListView,所以要好好看下这篇文章...

2018-09-05 18:07:49 10676 2

原创 flutter Container的decoration

decoration可以设置边框、背景色、背景图片、圆角等属性,非常实用。对于transform这个属性,一般有过其他平台开发经验的,都大致了解,这种变换,一般不是变换的实际位置,而是变换的绘制效果,也就是说它的点击以及尺寸、间距等都是按照未变换前的。 example:new Container( constraints: new BoxConstraints.expand( ...

2018-09-04 17:20:07 22710 1

原创 observable.map 介绍

Observable 映射observable.map(values, options?)observable.map(values?) - 创建一个动态键的 observable 映射。 如果你不但想对一个特定项的更改做出反应,而且对添加或删除该项也做出反应的话,那么 observable 映射会非常有用。 observable.map(values) 中的 values 可以是...

2018-08-24 10:43:40 6254

原创 React Navigation 跳转页面时回调

跳转页面时,传递参数,把回调方法作为参数传递进去。onPress={() => this.props.navigation.navigate('cameraID', { onBack: (imgUri) => { this.setState({kt...

2018-08-10 14:18:12 1693

原创 ReactNavigation V2 监听物理返回键

首先导入BackHandler组件import { BackHandler,} from 'react-native';在构造函数中监听,并在willunmount中取消它constructor(props) { super(props); this.state = {}; BackHandler.addEventListene...

2018-08-07 11:06:15 2116 6

原创 ReactNative 倒计时组件 react-native-zyCountDown

react-native-zyCountDown用于react-native的计数组件,倒计时组件封装的一个倒计时按钮,仅仅使用TouchableOpacity,View和Text. 安装npm i react-native-zycountdown或者yarn add react-native-zycountdown使用两个使用方式样式分别对应下面...

2018-07-20 16:34:50 2722

原创 JavaScript 加密库 crypto-js

介绍github地址 CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法。目前已支持的算法包括:MD5SHA-1SHA-256AESRabbitMARC4HMAC HMAC-MD5HMAC-SHA1HMAC-SHA256PBKDF2安装 npm install crypto-js使用impor...

2018-07-19 18:41:28 8443

转载 github ReadMe语法

README该文件用来测试和展示书写README的各种markdown语法。GitHub的markdown语法在标准的markdown语法基础上做了扩充,称之为GitHub Flavored Markdown。简称GFM,GFM在GitHub上有广泛应用,除了README文件外,issues和wiki均支持markdown语法。            Author:果冻虾仁...

2018-07-13 17:49:40 1971

原创 命令行方式打开android模拟器

先进入android sdk中的emulator目录 cd C:\Users\Frank\AppData\Local\Android\Sdk\emulator然后执行: emulator.exe -netdelay none -netspeed full -avd Nexus_5X_API_28Nexus_5X_API_28 为我的虚拟机名称。可以使用以下命令查询已...

2018-07-06 18:11:57 3965

原创 react native Linking 打电话 发短信 打开其他App等

使用Linking打开webURL 邮箱 联系人等,其实Linking相当于android的Intent:使用方式为: Linking.openURL(string) <TouchableOpacity onPress={() => { ...

2018-07-06 17:32:48 5856

Pepk.jar 签名工具(华为市场或者谷歌市场上架app签名需要)

Pepk.jar 签名工具(华为市场或者谷歌市场上架app签名需要) 华为市场或者谷歌市场上架app签名需要 Android app 签名生成工具 执行完命令,会生成 output.zip , 然后把 output.zip 上传即可

2022-06-28

java_ee_api中英文对照版

java_ee_api中英文对照版 JavaTM Platform Enterprise Edition, v 5.0 API Specifications

2015-09-05

java五子棋小游戏

内含 程序原代码 jar包(可双击直接进入游戏) word功能描述文档

2015-08-29

java课程设计

1、 自定义类说明: (1)类名:MainTest 作用:主类,构建主界面 继承的父类:Jframe 主要实现接口:ActionListener 主要成员变量: private JPanel ContentPane; private JButton Insert = new JButton(); private JButton Select = new JButton(); private JButton Update = new JButton(); 内部类:MainTest_actionPerformed,主页面的事件监听。 jenter_ actionPerformed,按钮的事件监听。 主要成员方法: public MainTest() public static void main(String[] args) (2)类名:Insert 作用:实现添加个人信息 继承的父类:Jframe 主要实现接口:ActionListener 主要成员变量: private JPanel ContentPane; private JLabel jlab1 = new JLabel(); private JLabel jlab2 = new JLabel(); private JLabel jlab3 = new JLabel(); private JLabel jlab4 = new JLabel(); private JLabel jlab5 = new JLabel(); private JLabel jlab6= new JLabel(); private JLabel jlab7 = new JLabel(); private JLabel jlab8 = new JLabel(); private JTextField jtextfield1 = new JTextField(); private JTextField jtextfield2 = new JTextField(); private JTextField jtextfield3 = new JTextField(); private JTextField jtextfield4 = new JTextField(); private JTextField jtextfield5 = new JTextField(); private JComboBox jcombobox1 = new JComboBox(); private JComboBox jcombobox2 = new JComboBox(); private JTextArea jtextarea = new JTextArea(); private JButton sure = new JButton(); 内部类:sure_actionperformed,按钮的事件监听,实现对数据的插入。 主要成员方法:public Insert(); (3)类名:Update 作用:对个人信息进行修改。 继承的父类:Jframe 主要实现接口:ActionListener 主要成员变量: private JPanel ContentPane; private JLabel jlab1 = new JLabel(); private JLabel jlab2 = new JLabel(); private JLabel jlab3 = new JLabel(); private JLabel jlab4 = new JLabel(); private JLabel jlab5 = new JLabel(); private JTextField jtextfield1 = new JTextField(); private JTextField jtextfield2 = new JTextField(); private JTextField jtextfield3 = new JTextField(); private JTextField jtextfield4 = new JTextField(); private JButton sure = new JButton(); private JButton upda = new JButton(); 主要成员方法: public Update() public void actionPerformed(ActionEvent e) (4)类名:Select 作用:查询学生个人信息 继承的父类:Jframe 主要实现接口:ActionListener 主要成员变量: private JTextArea taInfo=new JTextArea(); private JPanel panel=new JPanel(); private JTextField jtextfield1=new JTextField(); private JButton jbutton=new JButton("查询"); private JLabel jlabel=new JLabel("学号"); 主要成员方法: public Select() public void actionPerformed(ActionEvent e)

2014-04-02

java学生信息管理系统源代码

java学生信息管理系统源代码&_4

2014-04-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除