Compose 滑动冲突解决

在 Compose 中, 处理滑动冲突的 Api 是 Modifier.nestedScroll() 下面就让我们来看看 Compose 中是如何处理的 一般来说,滑动冲突本质是,滑动冲突是因为内外层组件在同一方向上都滑动,而系统并

Compose 自定义绘制

在 Compose 中,绘制的 Api 有 drawBehind drawWithContent 或者是使用完成自定义绘制方式 Canvas,接下来就来看看他们是如何使用的 在已有内容上绘制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Compose LayoutModifier 原理解析

LayoutModifier 作用是修改 Composable 的尺寸和位置偏移 LayoutModifier 只是一个接口,在实际开发中我们会使用 Modifier.layout() 自定义测量和位置偏移处理,先大致了解一下 layout 源码 1 2 3 4 5 6 7 8 9 10 11 12

Compose 动画终章进阶篇

AnimatedVisibility 对单个控件做显示和隐藏的动画效果 在上一个章节我们学习了 Transition 动画,这一节学习它更加上层的 Api,但其实内部本质上使用的也是 Transition, 先看一下 AnimatedVisibility 的源码,

Compose转场动画之 Transition

前言 在上两篇文章中,我们了解了 Compose 中动画的各种 animationSpec 的使用和 anim.xxx 的方法参数使用说明,这节开始学习 Transition 的使用 Transition 可对多个属性值进行动画 在 Android 原生中, Transition 动画是

Compose之衰减型动画

前言 回顾上篇文章我们学习了 compose 中的 animateTo 、 snapTo 如何使用,和 animationSpec 的参数配置等等,这篇文章,我们学习 Animatable 中另外一个方法 animateDecay animateDecay 衰减型动画, 它只有一个实现类 DecayAnimationSpecImpl 有了

Compose 动画基础篇之各种 Spec

从这一节开始,我们开始讲解 compose 最基础的动画 Api 使用,最基础也是最重要的部分,掌握这些基础的配置,会对后面的高阶动画的使用配置更加的得心应手 状态转

线程池参数详解

这里直接拿 OKHttp 源码中的线程池举例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
public synchronized ExecutorService executorService() {
    if (executorService == null) {
      executorService = new ThreadPoolExecutor(
          									0, // 核心线程
                            Integer.MAX_VALUE,  // 最大线程
                            60,					// 空闲线程闲置时间
                            TimeUnit.SECONDS,	// 闲置时间单位
                            new SynchronousQueue<Runnable>(), // 线程等待队列
                            Util.threadFactory("OkHttp Dispatcher", false) // 线程创建工厂
      );
    }
    return executorService;
}