年度归档: 2022年

40 篇文章

kotlin-协程异常分析处理(一)
1.CoroutineScheduler internal class CoroutineScheduler(...) : Executor, Closeable { @JvmField val globalBlockingQueue = GlobalQueue() fun runSafely(task: Task) { try { task.ru…
kotlin-协程
1. 基本认识 Kotlin 的编译器检测到 suspend 关键字修饰的函数以后,会自动将挂起函数转换成带有 CallBack 的函数 suspend fun getUserInfo(): String { withContext(Dispatchers.IO) { delay(1000L) } return "BoyCoder" } // Co…
Kotlin-inline、nonline、crossinline
1. inline java中有一个编译时常量的概念,即编译阶段就会确定变量的值,并直接将确定的值- 替换到调用的地方。 kotlin中使用 const val 用于定义编译时常量 函数相应的则使用 inline,并且还会内联当前函数体内的函数。 fun A(B: ()->Unit) { B() print("A") } // 调用A函数的时…
Kotlin-不变型、协变、逆变
1. 子类型 任何时候,如果要使用 类型A 的值,都能用 类型B 的值作为替换(当做 A 的值),称 B 是 A 的子类型。 2. 泛型中的子类型 如果List要成为List的子类就必须满足下面两个条件: 1. List中方法接收参数的范围 不得小于 List的方法 2. List中方法返回值的范围 不得大于 List的方法 // List带泛型的…
Android-自定义宿主管理状态栏
自定义状态栏View对象 /** * 自定义状态栏的View,用于StatusBarHostLayout中使用 */ class StatusView extends View { private int mBarSize; public StatusView(Context context) { this(context, null, 0); }…
Android-事件分发和处理
文章源链接 简单总结记录 GestureBinding: 1. handlePointerEvent 事件分发 -> _handlePointerEventImmediately 2. _handlePointerEventImmediately 对down/up,cancel等事件进行处理 2.1 pointerDown事件,会进行hitt…
Flutter-Tabbar指示器
使用 @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('title'.tr), bottom: HjtTabBar( tabs: const [Tab(text: "音乐"), Tab(text: "动态"), T…
Math-数学计算-根据弧度计算圆周上点的坐标的方法
一、转换 圆周分成几份 len len * pi / 180 = 弧度 使用弧度计算对应的坐标点:如下述 pi 180 —— * —— = 45 4 pi pi 45 * —— = hd 180 360 pi —— * —— = hd len 180 二、计算 2.1 以正东面为0度起点计算指定角度所对应的圆周上的点的坐标(水平右) float r…
Flutter-MultiChildRenderObjectWidget
一、初步使用-和SingleChildRenderObjectWidget类似 class CusRenderBox extends SingleChildRenderObjectWidget/MultiChildRenderObjectWidget 不同点: // 可以进行内部绘制 // class RenderCusRenderBox exte…
Flutter-SingleChildRenderObjectWidget
一、实现时间轴效果 // 实现时间轴效果 class CusRenderBox extends SingleChildRenderObjectWidget{ final double size; CusRenderBox({Widget child,this.size = 0}):super(child: child); @override Ren…