自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 Flutter上传文件到服务器

好久没写了,一直没时间,项目太紧,而且自己也变懒了许多。现在就发一下自己简简单单的封装类吧,一个上传服务器的一个封装。因为很多人问我在选择之后在选择无法去保存上次选择的文件。其实我也没多说什么。就说了一个set去重。在这里我就把我最简单的一个封装拿来用。这里我用的是一个multi_image_picker这个插件。我也不多说什么了直接上代码了。只要copy下来修改一下自己的网络配置就能使用。import 'dart:io';import 'package:---------/pages/login_p

2020-09-04 10:12:13 5733 1

原创 Flutter小实战----我们使用BLoc来实现一个登录的功能

前言:近来换了一份工作。在新工作中,由于公司产品是使用bloc开发的,那么没办法了,只能学了一下。在学习bloc的过程中,比较顺畅吧。感觉他跟provider(仅仅使用的区别,不是源码还有他跟provider适用场景的区别!!!!再次提示,勿喷)的区别就是,provider做一个封装过InheritWidget的特殊顶层变量它里面镶嵌这widget,而bloc是把自己的数据层,事件,状态,全部分割出来,当然你开始会觉得他很乱,要是用明白之后,发现其实这个框架开发产品挺舒服的。毕竟逻辑清晰。准备当然还是导

2020-07-08 17:04:45 2832

翻译 Flutter状态管理之BLoc----实现计算器功能

1.我们先安装依赖2.写一个ticker.dartclass Ticker{ Stream<int> tick({int ticks}){ return Stream.periodic(Duration(seconds: 1),(v){ return ticks - v - 1; }).take(ticks); }}这是一个定时器,我们没有使用timer,而是直接使用stream来实现。3.timer的state区分TimerInitial

2020-06-29 20:52:19 593

原创 Android滑动组件----RecyclerView并且实现点击事件(2)

我们知道ListView的扩展性并不好,它只能实现纵向滚动的效果,如果想进行横向滚动的话,那么ListView就做不到了。刚好RecyclerView能做到。接着上篇文章的代码进行改动。首先我们对fruit_item布局进行修改:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:o

2020-06-19 15:17:31 400

原创 Android滑动组件----RecyclerView

ListView由于其强大的功能,再过去的Android开发中,可以说是贡献卓越,直到今天仍然有不计其数的程序仍然使用。不过ListView也是有缺点的,它的扩展性不是太好,只能实现纵向滚动,不能实现横向滚动。所以Android就提供了一个更加强大的滚动组件----RecyclerView。他在ListView的基础上实现了更加强大的功能。基本用法1.增加依赖这里我就不多说什么了,直接在UI界面点击后面的下载符号就能下载。到时候后面会有一个下载按钮的。2.修改activity_main.xml代

2020-06-18 16:54:04 849

原创 Android----Intent的使用

Activity是Android最吸引人的地方,它是一种可包含用户界面的组件,主要用于实现交互。通常来说Activity就是我们看见的页面。那么我们可以很自然的知道一个app可以包含很多个Activity了。那么这时候 我们就想问一下,怎么进行交互的呢,这样一来我们就知道了Intent的概念 ,接下来我们就开始研究一下intent的使用吧。Intent的基本使用我们手动创建两个activity,分别命名为FirstActivity和SecondActivity,分别在他们对应的layout布局代码中改

2020-06-12 16:03:52 194

原创 JS时间戳转日期

JS时间戳转日期formatDate(now) { now = new Date(now * 1000) //这里需要看后台传的时间戳是10位还是13位 如果是10位则需要补000 var year=now.getFullYear(); //取得4位数的年份 var month=(now.getMonth()+1).toString().length == 1 ? `0${(now.getMonth()+1).toString()}` : `${(now.getM

2020-05-30 10:15:22 267

原创 Vue去除警告错误以及阿里图标库使用没效果问题

由于我们使用vue进行构建项目的时候,习惯性一直yes走下去的,会在后面的调试过程中带来比较多的烦恼。这时候我们可以把build文件下的webpack.base.conf.js文件中的这一行注释掉,这样就能解决问题了。...

2020-03-17 10:44:42 282

翻译 Flutter----实现优惠券外观的绘制

近来看源码。看的好爽。但是说句话没多大用,要是碰见难题是不是大家就跟我一样找UI切图去了。好了不说别的了 ,先看下面的优惠券。要是实现这样的优惠券你要怎么办?好吧,如果你问我的话,我的第一反应就是:xx姐/xx哥(UI切图)给我切个图。不知道你们是不是跟我一样。好吧这次我们就用代码来实现这种样式。shape看到这边边框的话,我相信大家能想到shape这个参数吧。他有几个类型的参数值:B...

2020-03-07 10:13:49 2302

转载 Flutter ---- ListView去除默认阴影

想看具体实现的清跳转到文末android使用滑动控件的时候默认就会有这么一个水波纹效果,真的是非常丑,原生可以使用overscroll属性关掉这个效果,但是在Flutter中貌似没有这个属性呢,查看ListView的构造方法也是一脸懵逼网上有人说指定physics属性为BouncingScrollPhysics可以避免水波纹效果,这个确实也管用,但同时也把反弹效果加上去了。所以不太好!同...

2020-03-02 09:43:57 5793 1

原创 Flutter----去掉底部导航栏的水波纹效果

在群里有好几次被人问到了,Flutter自带的底部导航栏,点击会有水波纹的效果,要怎么去掉。当时我也很懵,不是觉得这应该很简单吗?怎么被问了好几次。现在我就把这个解决方法告诉你们。其实处理问题的方式很简单。自己去copy源码找到地方自己修改自己去想办法(当然这是说废话。。。你不想方法,感觉第二天可以去财务结账了!)好了我就不说废话了,直接说正题了。正常来说我们建立一个...

2020-02-29 10:25:44 3719

原创 Flutter实战小项目(5)----项目的最终整合

前一段时间因为比较忙,就没有多打理这个博客,有点抱歉。今天我看了一下剩下的,也没有什么多讲的了,就一次性的给大家说完了,然后我会附上github的源码地址。有想学习的可以慢慢的去跟着敲一遍。你可以全部拉下来学习。但是你可能看不懂很多逻辑。对于我来说,我还是建议如果大家想学习,可以跟着我这个实战项目的逻辑来走一遍。这样会比较清晰。而不是自己每次都在文件中跳转!home首页的设置我们知道,我们在首...

2020-02-26 09:44:18 743

原创 Flutter实战小项目(4)----UI界面控件的封装 下

接上一个文章,我们还是进行控件的封装。我们要自己实现一个AppBar控件,要知道我们AppBar控件有自己的高度,那么要实现自己的封装还要进行一个接口的实现 PreferredSizeWidget,当然你也可以用相关的控件把他包起来。话不多说上代码:import 'package:flutter/material.dart';import 'package:flutter/cupertin...

2020-02-14 00:10:30 363

原创 Flutter实战小项目(3)----UI界面控件的封装 上

我们看开始的图片知道,我们这是一个底部导航栏。由于Flutter代码的嵌套性比较繁乱,冗杂。所以我们就把每个界面的ListView显示的每个item数据都进行封装。首页控件的封装:import 'package:flutter/material.dart';import 'package:flutter_app_pneumonia/api/news_model.dart';import '...

2020-02-14 00:06:20 415 1

原创 Flutter实战小项目(2)----全局变量和全局配置

我们都知道,做一个项目,工具类封装好了,还有一些全局变量顶层变量以及api地址需要我们自己去配置好。这样也是为了代码的可读性和可复用性。就好比我们的多语言多主题等。我这里就不多设置了,就是按照本项目的配置和全局变量进行复述。全局配置这个尽量要有一个文件去做一下配置,不然项目越来越大,内存越来越多的时候,会出现小问题。就是控制台的输出会有乱码。代码如下:import 'package:sha...

2020-02-13 23:44:57 3692

原创 Flutter实战小项目(1)----工具类的基本封装

这个年过的是在是闷死了。在家里我基本没事干,开始还可以,之后就实在没心情了,根本做不住。由于我自己做的项目是和自己的工作有关,其余的练手还有仿App的项目我没怎么做过。刚好这一段时间在网上看着我一个朋友自己写的一个小demo,感觉挺有用的我就把这个项目自己敲了一遍,看了一下架构。很经典的MVVM架构,感觉很适合有点基础并且学Flutter的初学者。这是基本的项目分布。这是基本的工程项目结构...

2020-02-11 11:51:14 3106

转载 Flutter一个简单的Route Helper/Navigator Helper

在Flutter中route是一个绕不开必须面对并且很常用的东西。Route就是路由,顾名思义,负责你页面之间的跳转。路由分静态路由和动态路由。静态路由: 不需要传参的,这样等二路由可以直接定义在MaterialApp/WidgetApp里,这样可以通过Navigator.pushNamed使用。动态路由: 就是传入一个动态路由并且带参数,或者你自定义的。在这里我们可以使用一个工具类...

2020-01-21 16:00:21 259

原创 Flutter----RxDart讲解

RxDart就是一个响应式编程,与之相关的还有他自己的全家桶(RxKotlin,RxJava,RxJS…)。。。我前面也有说过,反正我自己所见过的状态管理基本都是对Stream封装过的。所以本文就讲解一下几种不同类型的RxDart中的Subject。这里的Subject就相当于Stream中的StreamController。Observables点开源码不出所料 的就看出了,Observa...

2020-01-20 11:23:07 2477

原创 Flutter----探索setState原理

简要说明State1. State是什么?我们都知道,Flutter有个特性**“everything is widget”,而Widget是@immutable(不可变的),那么你就会问,我每次setState之后的Widget**树是怎么渲染的?他既然是不变的那怎么会进行重绘改变呢?那么疑问自然而然的就来了!!!!我们知道,StatefulWidget的State会帮助我们实现Widge...

2020-01-19 15:27:14 1435

转载 Flutter进阶之全面深入理解Stream

通过上一篇文章我相信你也能了解到了Stream的用处,但是可能还是太懵,因为我说的有点多,就是一个简单的案例。刚好昨天晚上我翻了翻我曾经看过的大佬的文章,就找到了上篇文章所说的那个大佬。感觉我看过的大佬都是喜欢用喵星人做为头像。好了我们步入正题:全面深入理解Stream一. Stream由深入浅Stream的基础概念和重要性我就不说了上一篇文章说过!!!我们看下整个Stream设计外...

2020-01-18 12:09:37 1142

原创 Flutter----Stream讲解

StreamStream在Flutter中也是属于非常关键的概念,就好比前面我有写过一篇event_bus的文章,我就是用Stream去做的,有兴趣的可以去前面看看。在Flutter中,状态管理出了本身自带的InheritedWidget之外,还有什么rxdart,Bolc,redux,provider以及别的大佬们写的插件。但是不管是什么状态管理的模式,我看到的基本都是离不开Stream的封...

2020-01-17 14:26:42 3006

原创 用Flutter实现一个类似于轮播图的效果

效果图:过程脑洞自补!!!类似于上图的效果,我们应该能想到用PageView来实现,但是思来想去,PageView官方并没有给自定义的参数,就是我们需要的下面的指示器的效果。现在我就来说下一下怎么来实现他。在Flutter的字典中,有一句话说的好,“万事不决Stack”好了我们就套用Stack布局来实现图片和图片标题的内容嵌套。首先我们先建立一个存放图片的类,本来想用api来,但是发现还...

2020-01-16 11:31:06 1089 2

原创 flutter局部刷新

局部刷新我们在做项目的时候,都需要单独的去刷新一个值,而不是把整个界面都重绘。大家都知道setState是进行重绘的一个方法,他会执行生命周期的一个build,这将会使得整个界面来进行重绘。当然我们也会说把他进行状态管理,因为我个人不是很喜欢用provider进行状态管理,而是使用steam和event_bus进行传值和管理,当然自然的代码就会多了,所以我现在也在寻找provider更简单的方法...

2020-01-15 14:53:42 8347 5

转载 Flutter/Dart ----基础语法

Flutter/Dart ----基础语法1.Dart中常见的基础类型:总体来说Dart的常见类型有下面八种:1.1.数字类型num、int、double都是Dart中的类,也就是说它是对象级别的,所以他们可以为null,这就是不同于java的基本数据类型。main(){ num age = 6; //num 数据类型 int height =66; //int 整型 ...

2019-12-19 10:43:35 410

原创 Flutter --- event_bus插件传值

Flutter — event_bus插件传值自我感觉这个event_bus能够进行状态管理,类似于provider功能的那种;这一段时间也是一直卡在这个地方,我很伤心,因为网上的demo,全是TM的扯淡扯皮的,一点B用没有,只能在一个界面内进行传参传值,那样的话我们为什么还用这个呢?不如直接用flutter给的InheritedWidget进行数据共享呢!网上给的demo大约就是这样还有别...

2019-12-04 18:47:17 850 1

原创 Flutter Dio 网络接口与请求数据

Flutter Dio 网络接口与请求数据想了想,感觉没什么好说的,像什么get,post,delete,download啥的,基本插件的使用文档都有,没什么好说的,但是我们实际项目写的时候,可不能那样写,容易引起别人笑话,所以说最基本的配置文件还需要我们自己动手去书写。我也不挨个的发了感觉没意思,就大致的把网络接口的数据模型发给大家,大家直接复制下来就能用,当然用的时候也要改一下一些参数,例如...

2019-11-16 11:10:09 2704

原创 Flutter 网络基础 ---Dio插件的基本使用

Flutter 网络基础 —Dio插件的基本使用我们在很多的实际应用和开发中斗会用到网络这里的相关问题和知识。在Flutter中其实有很多已经帮我们封装好的插件,比如Http什么的,而最好用的,和使用做得多的就是Dio插件,这个包括了很多东西。我们都知道,与网络打交道有很多方式,get,post,delete,等等。而在这里我说的就是Dio插件请求最基本的get。需求什么的我就不说了,这...

2019-11-15 19:30:33 723

原创 Flutter路由动画

Flutter路由动画在我们实际的开发中,这个动画还是比较必要的。因为我们要求有效果的实现,总不能一下子就覆盖了原来的内容,所以我们就需要动画来实现这界面跳转的效果。这里我只说一个移动端最常用的一个就是侧滑的效果。我们定义两个界面,没个界面中间都有一个按钮,能够实现页面的跳转。代码如下:## main.dart ##void main() => runApp(MyApp());...

2019-11-06 17:49:23 1187

原创 Flutter组件----ExpansionTile

ExpansionTile是什么?ExpansionTile其实就是一个类似于有一个标题可以展开的控件而已,就好比我们选择一个Title他就可以展开一些属于他的东西。例如我们点击一个服务,它会在下面展开一些服务的子项目。我们看ExpansionTile的签名函数即构造函数ExpansionTile({ Key key, this.leading,//和ListTitle类似,...

2019-11-05 18:13:27 5981

原创 Flutter常用基本布局Layout(2)

Flutter常用基本布局Layout(2)在上文中我们主要介绍了Row和Column的用法,借助于这两个Widget我们可以很方便的完成我们想要的界面效果,根据前面学过的内容完成如下布局效果:实现如上效果的代码如下:class _MyHomePageState extends State<MyHomePage> { @override Widget build(Bui...

2019-11-01 17:57:21 628

原创 Flutter常用基本布局Layout(1)

Flutter常用基本布局Layout(1)在前面的文章中,我们有说国Container,Text,仔细的朋友们可能会发现,这些Widge只能传入一个child对象,而不能传入多个child,这样一来可就大大限制了我们的工作的适应度。所以,今天我们就来讲讲可以传入多个child(children)的Widget,例如:Row和Column。(当然前面说的ListView也是可以传入多个Widge...

2019-11-01 17:20:03 299

原创 Flutter防止键盘弹出超出屏幕像素

有时候我们在用Flutter去画界面的时候,在使用键盘的时候弹出会出现键盘弹出后超出屏幕。所以我们只需要在Scaffold中加入resizeToAvoidBottomPadding: false,这个参数就好!例如:return Scaffold( appBar: AppBar( elevation: 0.0, title: new Text("防止键盘弹出超出屏幕"),...

2019-11-01 09:34:01 1065

原创 Flutter常用组件 ListView

Flutter常用组件ListView动态列表是我们常用的基本布局方式之一,我们可以通过ListView来实现动态列表,它也支持横向和纵向的方式去展示。我们可以通过ListView去实现垂直列表、垂直图文列表、水平列表、动态列表、矩阵式列表等。以下是ListView的常用基本参数名称类型&说明scrollDirectionAxis & Axis.hori...

2019-10-25 22:43:31 250

原创 Flutter常用组件图片组件

图片组件图片组件是显示图像的组件,Image 组件有很多构造函数,这里我们只给大家讲两个Image.asset, 本地图片(加载工程内的图片)Image.network 远程图片(加载网络图片)名称类型&说明alignmentAlignment & 图片的对齐方式color 和colorBlendMode设置图片的背景颜色,通常和 colorB...

2019-10-24 22:17:18 263

原创 Flutter常用组件Text Container组件

Text组件常用组件,大部分也比较熟悉,基本使用的就是textAlign ,overflow,style,感觉也没什么多说的,毕竟是常用的,使用几次就习惯了。Container组件Container组件是我们常用的布局文件,但是对于Container组件也有很多功能,大部分我们使用的时候使用来装饰的decoration的,比如圆角框,颜色,边线等。如图中的效果;代码为:body: C...

2019-10-24 21:57:12 226

转载 计算机网络协议(五)——DNS、HTTPDNS

概述每个人平时常用的网站有二三十个吧,全部用IP地址访问肯定记不住啊,那就需要一个地址簿,根据名称来查看具体的地址。本文将分为两个部分来进行介绍:DNS协议;HTTPDNS协议;一、DNS协议:网络世界的地址簿DNS服务器就是充当地址簿的角色,根据域名查看对应的ip地址;DNS服务器要设置成高可用、高并发和分布式的才能应对每天全球各地的人的访问;DNS服务器的树状层次结构如下:...

2019-10-11 16:34:31 887

转载 计算机网络协议(四)——HTTP、HTTPS、P2P协议

概述本文将分为三个协议给大家进行介绍:HTTP协议:看个新闻原来这么麻烦;HTTPS协议:点外卖的过程原来这么复杂;P2P协议:我下小电影,99%急死你;一、HTTP协议http://www.taobao.com 是个URL,叫作统一资源定位符;HTTP请求的准备系统会将http://www.taobao.com 提交给DNS服务器解析为IP地址;目前使用的HTTP协议大部分...

2019-10-07 20:07:47 690

原创 使用Flutter建立一个登陆界面

这是我们需要做的设计图,关于设计图就不用说了。直接上代码import 'package:flutter/material.dart';//密码登陆class Login extends StatefulWidget { @override _LoginState createState() => _LoginState();}class _LoginState ex...

2019-09-23 17:32:06 527

转载 计算机网络协议 ---- UDP、TCP、Socket

概述传输层中有两个重要的协议,UDP和TCP,这也是在开发中经常用到的协议,同样也是面试的重点。本篇将分为三节进行介绍:UDP协议TCP协议套接字Socket一、UDP协议很多人都会被问到 TCP和UDP的区别,那么大部分人都会回答,TCP面向连接,UDP面向无连接;建立连接:是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面...

2019-09-18 17:54:55 502

原创 C#实例---利用控件所搭建的界面可以访问一个网址

目标:访问任何一个网站(C#,HTTP)1. 创建一个Windows窗体项;2. 设置UI界面;在Form1里面加入一个Label,一个Button和两个TextBox,将第二个TextBox的Multiline属性改为True;3. 在Form窗体上点击右键,选“查看代码”(或者直接按F7也可以); ----上代码using System;using System.Collecti...

2019-09-11 17:15:20 444

空空如也

空空如也

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

TA关注的人

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