- 博客(98)
- 资源 (1)
- 收藏
- 关注
原创 Android 工具抽取:(可能的)全局 Loading 弹窗【仿照】
仿照《Android全局弹窗dialog》实现的全局 Loading 弹窗方案以前都是将 Loading 弹窗逻辑添加到页面 Activity 基类中进行维护使用,在某次进行 demo 时,尝试了这种便捷的全局 Loading 弹窗方案,后续看是否有机会,作为(独立)模块或者组件的补充方案在实际项目中进行应用。
2023-05-03 11:46:27
927
原创 Flutter 与第三方 Native-SDK 的交互代理方案
在使用 Flutter 进行功能模块或者整体项目的开发时,如果需要(阶段性)频繁地和某个第三方 Native-SDK 进行交互,而该 Native-SDK 没有实现 Flutter 插件版本的情况下,如果直接把这部分交互 API 加入到原有的 channel 类里面,会使得该 channel 类变得臃肿,造成代码维护及迭代上的难度;维护与 Flutter 端的交互,使用者不需要知道具体交互逻辑,但是在该代理类中,需要保证每次有回调的交互都能正确回调(不管是状态为成功的回调,还是状态为失败的回调)
2023-05-03 11:25:23
1844
原创 Flutter 组件使用:使用 Stack 替代 GlobalKey 的定位 tip-widget 实现
但是,如果使用 Stack 的 Clip.none 特性后,Stack 包裹的内容可超范围绘制显示,这时,体现在 Column 的绘制顺序的话,顺序靠后的子 widget 就会覆盖顺序靠前的子 widget 的超范围绘制的内容;所以,在 Column 中如果 tip-widget 是向上展示的,一般能正常展示,但是,如果 tip-widget 是向下展示的,就会有覆盖的问题。以上提到的问题,不仅实现上“费时费力”,还会使相关功能代码分散、不相关功能代码耦合,造成代码维护及迭代上的难度;
2023-05-02 13:27:04
869
原创 Flutter 组件抽取:日期(DatePicker)、时间(TimePicker)弹窗选择器【仿照】
仿照《Flutter 仿ios自定义一个DatePicker》实行的日期弹窗选择器(DatePicker)、时间弹窗选择器(TimePicker)
2023-05-01 17:37:59
1793
2
原创 Flutter 组件抽取:验证码输入功能(CodeInputContainer)
验证码输入框,可选需要输入的验证码个数,输入达指定个数后自动回调。
2023-05-01 17:28:58
1149
原创 Flutter 组件抽取:通用页面 State 抽取(BasePageState)
通用页面 State 抽取,统一了 AppBar 的样式及基本交互,可对用 StatefulWidget / State 类型实现的页面的其他通用交互进行统一定义及维护。
2023-05-01 17:21:36
335
原创 Flutter 组件抽取:自适应每行最高 item 高度的 GridView(OptionGridView)
自适应每行最高 item 高度的 GridView,多用于多入口选项,且选项高度会因选项 tag 的不同而不断变化的场景。
2023-05-01 17:09:28
2534
原创 Flutter 组件抽取:懒加载的 IndexedStack(LazyIndexedStack)
懒加载的 IndexedStack,切换时才初始化对应子项,避免 IndexedStack 预初始化带来的无谓消耗。
2023-05-01 16:47:04
904
原创 Flutter 加载网络图片之:FadeInImage + Image.network
想实现的效果:1、通过网络url加载图片(支持 gif)2、加载之前使用默认占位图3、加载出现问题后要做兜底处理其实可以通过先将图片资源加载到本地文件中,然后读出来设置,虽然要绕一圈,但不失为一个好方案。但是,为了熟悉 Flutter 的图片相关知识,还是采用官方提供的 API 来试着实现。下面是最终方案: FadeInImage( image: _addImageLoadListener(imageUrl), // TODO 未加载出来前的占位图
2020-12-13 16:14:13
3824
原创 Flutter 使用 LongPressDraggable + DragTarget 实现长按编辑拖动交换位置效果
需要实现的效果:1、可滑动列表(GridView)2、对列表项目进行拖动交换位置(Draggable + DragTarget)3、拖动时列表根据拖动位置进行上下自动滑动控制(ScrollController)import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';class DragDemoPage extends StatefulWidget { @override _DragDe
2020-12-13 15:36:11
1984
原创 flutter_blue + MethodChannel.invokeMethod + java.lang.NullPointerException
友盟崩溃日志报了这样一个问题,说是扫描蓝牙设备回调时 MethodChannel 为空:java.lang.NullPointerException: Attempt to invoke virtual method 'void io.flutter.plugin.common.MethodChannel.invokeMethod(java.lang.String, java.lang.Object)' on a null object reference at com.pauldemarco.flut
2020-11-18 20:52:40
1158
原创 解决 flutter_blue 升级到最新 7.x.x 版本后,Android 打 release 包后蓝牙功能无效问题
如题:### 解决 flutter_blue 升级到最新 7.x.x 版本后打包无效问题-keep class com.pauldemarco.** {*;}
2020-11-18 20:28:57
1432
2
原创 Flutter TextField(文本输入)使用填坑
TextField 是一个文本输入组件,一开始做登录页就用到了。但是,TextField 有一些坑官方还没有填,那么就只能通过一些俏皮的方案来解决了。当然,如果够强的话,也是可以写一个新的 widget 控件的 ~1、限定了可输入长度,超过长度后虽然不展示出来,但是点击删除键时,还是要删除已输入但是看不见的那部分2、限定了输入类型(比如数字),虽然会弹出响应类型的键盘(比如数字键盘),但是还是能输入其他类型(比如字母、汉字)以上两种坑合并解决方案如下,当然,如果想自己画一个数字键盘,也是可以解决输入
2020-11-14 15:41:29
3579
原创 RxJava + Retrofit 应用整理(Kotlin 版)
好久之前用 RxJava 搭配 Retrofit 抽过一个网路请求框架《RxJava + Retrofit 应用整理》,现在再来个 Kotlin 版本的 ~一、框架搭建网路请求框架基于以下版本: // Kotlin implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android
2020-11-07 15:26:36
678
原创 Android 数据库操作之:Room 的引入及使用(整理)
一、基本1、官方推荐Room 在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。谷歌强烈建议使用 Room 而不是 SQLite。2、主要内容点Room 包含 3 个主要组件:(1)数据库:包含数据库持有者,并作为应用已保留的持久关系型数据的底层连接的主要接入点。使用 @Database 注释的类应满足以下条件:是扩展 RoomDatabase 的抽象类。在注释中添加与数据库关联的实体列表。包含具有 0 个参数且返回使用 @Dao
2020-09-28 15:39:41
13623
原创 Android 数据库操作之:SQLiteOpenHelper 与 SQLiteDatabase(整理)
一、基本使用二、使用中要注意的问题三、一些原理参考文章:
2020-09-28 15:38:48
1815
原创 TextView 局部文本样式设置之四:SpannableStringBuilder
SpannableStringBuilder 与 SpannableString 的区别就和 String 与 StringBuilder 的区别类似。SpannableStringBuilder 可以使用 append() 方法拼接,而 SpannableString 不可拼接。其他没有多大区别。其实,大部分场景用 SpannableString 就能应付得来,但当一次性需要在头部嵌入多种样式时...
2020-09-26 09:54:06
459
原创 Android 可拖动且自动贴边的自定义 View
之前做过一个需求,可拖动且自动贴边的自定义 View,这个也是网上一顿“参考”,已经忘了哪几位前辈的了,用着挺好挺不错了,贴上代码,主要是在 onTouchEvent 方法中对 MotionEvent 及手指坐标的操作:import android.content.Context;import android.graphics.Color;import android.util.AttributeSet;import android.view.LayoutInflater;import andro
2020-08-22 13:53:17
1515
3
原创 JavaScript 的一些概念
1、apply() 方法与 call() 方法apply() 方法能劫持另外一个对象的方法,继承另外一个对象的属性。var person = { fullName: function (city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; ...
2020-04-02 18:23:10
335
原创 Cocos 动效
在 Cocos 给节点做动画效果,有很多系统提供的实现方式:1、动画系统 Animation2、动作系统 action3、缓动系统 cc.tween动画系统 Animation 可以在 CocosCreator 手动编辑生成,不用写代码,但是只适用于制作一些不太复杂的场景,而且,如果UI效果要大调,那推到重做可能好过修修补补,在原基础上调整效果,有时特别苦逼;动作系统 action 就能用...
2020-03-24 10:08:13
1547
原创 Cocos 开发中遇到的坑
1、对象为空带来的问题对象使用前要判断空,网页遇到空对象的执行,可能可以忽略错误继续执行下去,但编译成 Android 后,空必奔,所以前期开发要养成判空的好习惯,不够后面改起来就呵呵了。2、代码快于渲染带来的问题在 onLoad 和 onStart 方法里用代码方式生成节点时,如果该节点要使用其他节点的参数辅助生成时可能会出问题,因为这两个方法执行时,节点并没有渲染出来,一些基于屏幕的属性...
2020-03-17 00:07:33
4119
2
原创 Cocos 特有功能代码
1、存储和读取用户数据:cc.sys.localStoragecc.sys.localStorage 接口是按照 Web Storage API 来实现的,在 Web 平台运行时会直接调用 Web Storage API,在原生平台上会调用 sqlite 的方法来存储数据。用户不用关心内部实现。// 存储数据cc.sys.localStorage.setItem(key, value)//...
2020-03-16 19:55:05
390
原创 用 Node.js 给移动端提供测试接口
同学,你是否有经历过等接口等到想打人的地步!不怕,用 Node.js 很快就能自己写出接口,想怎样测就怎样测!开发工具和环境配置,请谷歌度娘:IDE:https://code.visualstudio.com/node:https://nodejs.org/en/win10下node环境配置:nodejs zip压缩版安装与配置PS:想想好像不一定要IDE,直接用文本编辑器写代码改成.j...
2020-01-09 21:14:23
694
原创 Lottie for Android:Json 动画框架 Lottie 的使用及加载 zip 压缩文件的方法
https://github.com/airbnb/lottie-androidhttp://airbnb.io/lottie/#/dependencies { implementation 'com.airbnb.android:lottie:$lottieVersion'}dependencies { implementation 'com.airbnb.android:lo...
2019-12-24 22:50:48
7302
1
原创 Android 开发中一些有趣的用法
1、RecyclerView.ViewHolder#setIsRecyclable// 对这个holder单独强制关闭复用holder.setIsRecyclable(false);用这个时,不能在通用的地方用,不然很很很影响性能,要确保只在特定的 holder 使用,比如在 onBindViewHolder 时,通过数据判断,在某个特定 holder 才使用,下面是通过 debug 输出...
2019-11-08 20:55:08
1400
原创 常用代码整理:Android 自定义推送(Notification)
说明:大部分内容都是参考别的文章,这里做整理是为了以后的编程有实用的模板,可以即需即用。 private void sendDefaultNotification() { NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE)...
2019-10-20 09:48:54
585
原创 Android 自带的常用注解
1、在注释中实现链接跳转 /** * ... ... * @see #invalidate() * @see #postInvalidateDelayed(long) */ public void postInvalidate() { postInvalidateDelayed(0); } /** ...
2019-09-06 18:11:36
306
原创 Android 常用代码整理:测试时用于下载文件的代码
说明:大部分内容都是参考别的文章,这里做整理是为了以后的编程有实用的模板,可以即需即用。 new Thread(new Runnable() { @Override public void run() { downloadFile("sound", "ring.mp3", "https://www.xx...
2019-08-19 16:37:51
255
原创 Android 常用布局代码:关于坐标的骚操作
有时候秀逗想不起来,故做此速查表1、获取 View 在屏幕上的绝对坐标// location[0]为x坐标,location[1]为y坐标int[] location = new int[2] ; // int[] location = new int[]{0, 0};// 获取 view 在当前窗口内的绝对坐标view.getLocationInWindow(location); ...
2019-08-19 11:09:01
571
原创 TextView 局部文本样式设置之二:SpannableString
上次写了《TextView 局部文本样式设置》后,一直想整理一篇关于 SpannableString 的文章,但是一懒就忘记了,刚好最近项目中局部文字样式修改用得多,所以就趁空把文章整理出来,这是参考其他文章整理出来的,以便后续查看。以下尺寸工具类采用《常用代码整理:尺寸工具类(SizeUtil)》1、常用样式SpannableString spannableString1 = new Sp...
2019-03-24 21:45:29
1167
1
原创 Android 自动化埋点:基于AspectJ的沪江SDK的使用整理
说明:此文章是基于《AOP AspectJ 字节码 示例 Hugo MD》所做的整理,该博主写得很好,但是本人刚上手时,觉得某些点如果有注释讲解的话,对于刚上手的小白友好度更高,所以就厚颜无耻的按照自己的使用理解整理了此文章,基本都是直接搬的代码,见谅见谅哈 ~一、引入SDK就如该博主所说,可以直接使用 AspectJ 的官方库集成配置,但是官方配置对于 Android 开发来说,有以下问题:...
2019-01-21 17:43:53
2260
原创 Java 运算符在实际开发中的应用
一、位运算符操作符描述例子&如果相对应位都是1,则结果为1,否则为0(A&B)得到12,即0000 1100|如果相对应位都是0,则结果为0,否则为1(A | B)得到61,即 0011 1101^如果相对应位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001〜按位取反运算符翻转操作数的每一位,即0变成1,1变成0(...
2018-12-27 10:57:57
1001
原创 TextView 局部文本样式设置
1、<string name="content">111<font color="red">222</font>333&
2018-12-20 17:17:47
1448
原创 Android 常用代码整理:尺寸工具类(SizeUtil)
说明:大部分内容都是参考别的文章,这里做整理是为了以后的编程有实用的模板,可以即需即用。
2018-12-13 10:11:21
1055
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人