自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卓原的进化之旅

活到老,学到老

原创 Android BottomSheetDialogFragment 可随手势滑动关闭的底部弹窗
原力计划

在APP开发中,经常会有一个需求: 从底部弹出弹窗,并且可以跟随手指滑动关闭弹窗. 简介 BottomSheetDialogFragment是位于com.google.android.material包下的一个类. BottomSheetDialogFragment 继承自AppCompatDi...

2020-03-31 17:55:51 255 2

原创 集成FlutterBoost

在Flutter发布了1.12版本之后 , 在原生程序中集成flutter的方式也有了改变 , 于是重新走一遍流程. 本次操作基于以下版本: Flutter 1.12.13+hotfix.5 • channel stable Android Studio 3.5.2 Android集成Flut...

2020-01-03 14:29:58 971 0

原创 Android LifeCycle监控生命周期

LifeCycle的作用是感知组件(Activity/Fragment)的生命周期 , 并在合适的生命周期执行分配的任务. 1.监听组件生命后期 假设我们此时有一个Util类,其中有两个方法需要分别在Activity的onStart和onDestory的时候执行,我们可以先让它实现Lifecycl...

2019-12-27 15:35:09 454 1

原创 Android 监听键盘状态 获取键盘高度

Android暂时还没有提供一个合适的API来获取/监听键盘的状态和高度 , 而我们又经常会有这个需求. 最近我的一个项目中,在ugc页面需要在键盘顶部,紧贴着键盘显示一个文字提示,当键盘消失时就隐藏. 因此,我需要监听软键盘的打开/关闭 , 以及获取它的高度. ViewTreeObserver ...

2019-12-25 11:25:30 692 1

原创 Android VideoView 视频播放器 仿抖音

前言 最近项目有个需求 , 做个类似抖音的视频效果. 又因为包大小的问题不使用第三方SDK,所以使用原生的VideoView开发了一下, 搭配RecyclerView和PageSnapHelper来实现抖音的效果. 全部代码: github 看一下实现流程: 首先创建了一个继承自Constr...

2019-11-27 15:57:40 654 0

原创 Java 反射

JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得...

2019-11-15 16:23:29 355 0

原创 Android 弹窗 DialogFragment

前言 一直以来 , 做弹窗功能的时候都是使用的Dialog , 布局复杂的弹窗则使用Activity , 把背景设置成透明, 最近了解到一个DialogFragment , 发现使用起来更加方便, 也是谷歌建议的做法. 简介 DialogFragment 继承自Fragment , 所以它的用法基...

2019-10-30 17:52:44 1784 1

翻译 Android 内存优化——常见内存泄露及优化方案

如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回 收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄 露。 在 Android 开发中,一些不好的编程习惯会导致我们的开发的 app 存在内存泄露的情况。 下面介绍一些在 Andr...

2019-10-22 15:19:40 437 0

原创 记一次CSDN的签到抽奖

摘要 前一阵子,CSDN上线了签到赢福利,免费抽大奖活动, 可能很多小伙伴都看到了. 就是这个东西 , 但我一直没抽过奖, 想起来签到一下而已. 正文 我上周签到次数好像是3次. 今天想起来这个事 , 就去找了一下抽奖入口. 找了半天都没找到 , 联系了一下客服: 于是我又进入了签到页面...

2019-10-21 19:31:11 367 1

原创 flutter 支持64位

最近谷歌商店有了一个新的通知: 谷歌应用商店的具体要求为:从2019年8月1日开始,除了一直存在的32位版以外,新应用和应用更新都必须提交64位的版本,不过已经上架的Unity 5.6或更早版本引擎制作的游戏除外,他们可以只提供32位版本直到两年后的2021年8月。 而截止发文时间,flutter...

2019-06-28 13:53:32 1431 11

原创 Flutter 状态管理之MobX

MobX一直是主要用于JS的主要的状态管理技术。flutter 现在关于状态管理的方案有 Scoped Model,Inherited Widget,Redux for Flutter,甚至是BLoC 。 之前写React的时候就有用过mobx,很是喜欢 , 现在发现提供了dart版本,于是来学习...

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

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

从零开始 首先,创建一个新的项目文件夹用来存放Android项目和flutter的项目. 原生的Android项目我给它命名为AndroidWithFlutterProject. 然后创建一个flutter 的 module项目,我命名为flutter_with_android1 : 看提示也知...

2019-03-27 13:17:22 640 0

原创 Dart 数据类型

Dart的所有东西都是对象。 它们都继承自Object,默认是都是null。 Dart中支持以下数据类型: Number 数值型 String 字符串 Boolean 布尔型 List 数组 Map 键值对 Runes ([String]的符文(整数Unicode代码点)) 数值型 num D...

2019-03-15 19:32:49 1498 0

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

Flutter中持久化存储数据有多种方案, 一般常用的有 shared_preferences 和 sqfite shared_preferences: 包含NSUserDefaults(在iOS上)和SharedPreferences(在Android上),为简单数据提供持久存储。数据以异步...

2019-03-13 16:28:54 6008 2

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

脚本内容: @echo off setlocal enabledelayedexpansion set file=D:\Project\sale_aggregator_app\lib\common\constants.dart set "file=%file:"=%&quo...

2019-03-04 12:04:07 822 0

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

一、颜色透明度和十六进制对应的表格: 透明度 16进制 100% 0 99% 3 98% 5 97% 7 96% 0A 95% 0D 94% 0F 93% 12 92% 14 91% 17 90% 1A 89% 1C 88% 1E ...

2019-01-17 16:30:09 1787 0

原创 flutter 分享插件 : flutter_share_me

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

2018-12-13 15:29:33 4171 5

转载 Android apk打包命名规则

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

2018-11-12 14:21:56 1038 0

翻译 React Native集成Touch ID和Face ID

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

2018-11-12 14:20:23 2229 0

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

画布canvas 画布是一个矩形区域,我们可以控制其每一像素来绘制我们想要的内容 canvas 拥有多种绘制点、线、路径、矩形、圆形、以及添加图像的方法,结合这些方法我们可以绘制出千变万化的画面。 虽然,画布可以画这些东西,但是决定这些图形颜色、粗细表现的还是画笔。 画笔Paint Paint非常...

2018-11-08 13:28:47 12713 0

原创 flutter 打包apk

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

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

原创 CSDN1024勋章获得方法

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

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

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

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

2018-10-18 15:15:11 2472 0

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

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

2018-10-14 00:41:10 25745 4

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

本文介绍了Flutter应用程序中Widget,State,BuildContext和InheritedWidget的重要概念。 特别注意InheritedWidget,它是最重要且记录较少的小部件之一。 难度:初学者 前言 Flutter中Widget,State和BuildContext的概念...

2018-10-11 18:09:02 5284 0

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

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

2018-10-11 13:23:39 22529 9

翻译 国际化 - 使Flutter应用程序多语言

国际化 - 使Flutter应用程序多语言   本文介绍了一种使Flutter应用程序多语言的方法,并允许用户选择除智能手机设置中定义的另一种工作语言之外的其他工作语言。 难度:中级 前言 国际化已经多次解释,可以在这里找到关于这个主题的Flutter官方文档。 因为我想正确地理解它,...

2018-09-22 21:43:45 2009 4

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

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

2018-09-21 00:08:21 36364 44

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

url_launcher 用于在移动平台中启动URL的Flutter插件。 支持iOS和Android。 支持网络,电话,短信和电子邮件方案,以及打开其他app。 主要功能有: 支持的URL方案 该 launch method 方法采用包含URL的字符串参数。可以使用许多不同的URL方...

2018-09-20 14:07:00 7765 7

原创 flutter 轮播组件 Swiper

flutter_swiper flutter最强大的siwiper, 多种布局方式,无限轮播,Android和IOS双端适配. 先放上github上的几张图看一下效果。 ✨✨ 新功能 更多 截图 图就先放到这里,我们看一下用法。 安装 增加 flutte...

2018-09-19 19:18:54 25359 17

原创 Flutter封装网络请求

dio dio是一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等… 我们的网络请求就是在dio的基础上封装的 . 所以要引入dio包. 添加依赖 dependencies: dio: ^x.x.x ...

2018-09-18 22:47:37 11652 7

原创 flutter SliverAppBar

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

2018-09-17 15:03:19 15593 4

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

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

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

原创 flutter 数据存储 SharedPreferences

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

2018-09-15 00:18:36 6006 0

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

MediaQuery MediaQuery.of(context) 包含了一些屏幕的属性: size : 一个包含宽度和高度的对象,单位是px print(MediaQuery.of(context).size); //输出: Size(411.4, 683....

2018-09-14 19:10:52 21358 0

原创 flutter 生命周期

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

2018-09-13 22:20:26 14230 1

原创 flutter 输入框组件TextField

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

2018-09-08 12:35:56 66820 27

原创 flutter 路由与页面跳转

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

2018-09-07 00:12:17 8041 0

原创 flutter Platform介绍

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

2018-09-06 21:13:58 1583 0

原创 Flutter TabBar

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

2018-09-05 22:37:37 4281 0

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