Jetpack Compose 实战:打造高性能轮播图(Carousel)组件

这篇文章用 Jetpack Compose 官方 `HorizontalPager` 实现一个可复用轮播图组件,覆盖基础滑动、伪无限循环、自动轮播、拖拽暂停和底部指示器。文中保留完整 Kotlin 示例,并说明从 Accompanist 迁移到 `androidx.compose.foundation.pager` 后的实现重点。 在 Android 传统 View 体系里,轮播图通常要把 ViewPager 或 ViewPager2 、定时器和手势处理拼在一起,代码不算复杂,但零散且不够直观。

Jetpack Compose 实战:打造高性能轮播图(Carousel)组件

Kotlin 空安全详解:从可空类型到避免 NPE 的实用写法

Kotlin 把空安全做进了类型系统:类型默认非空,只有显式加上 `?` 才表示可能为 `null`。理解可空类型、编译期检查、平台类型和常见操作符后,能明显减少 `NullPointerException`,也更容易写出边界清晰的 Kotlin 代码。 Kotlin 的空安全经常被概括成“类型后面加个 `?`”,但真正难点不在语法,而在如何用类型表达业务语义、把空值处理留在合适的位置。

Kotlin 空安全详解:从可空类型到避免 NPE 的实用写法

三分钟搞懂 Kotlin Flow 中的背压

Kotlin Flow 的背压处理,核心是让快生产、慢消费的节奏重新匹配。本文用同一组示例讲清默认串行收集、`buffer()`、`conflate()` 和 `collectLatest {}` 的行为差异,并给出按场景选择的判断方法。 在 Kotlin Flow 的使用中,真正难的通常不是把数据“发出来”,而是上游很快、下游很慢时该怎么处理。

三分钟搞懂 Kotlin Flow 中的背压

Android 自定义 View 实战:打造一个跟随滑动的丝滑指示器

这篇文章用 Kotlin 实现一个可复用的水平滚动指示器 `BottomLineView`,核心思路是把绘制逻辑和滚动容器解耦,只暴露“指示器宽度”和“滚动比例”两个输入。文中同时给出 `RecyclerView`、`HorizontalScrollView`、`ViewPager2` 三种联动方案,适合直接落地到实际项目。

Android 自定义 View 实战:打造一个跟随滑动的丝滑指示器