最近把项目往 Compose 迁,踩了不少坑,总结了一份对照笔记。如果你也在学 Compose,这篇应该能帮你省点时间。 页面怎么组织? 以前是 Activity + XML + Fragment 三件套,现在是 @Composable 一个函数搞定。没有 Fragment,没有 XML,也不用手动 findViewByld。 Modifier 是什么? 就是以前的 layout_margin、padding、background、clickable 这些属性,全部串在一起写。一个 Modifier.xxx() 链搞定布局和交互。 布局怎么替代? LinearLayout → Column / Row FrameLayout → Box RecyclerView → LazyColumn 注意 LazyColumn 最香,以前写 Adapter + ViewHolder + DiffUtil 三个文件,现在一个 items {} 代码块搞定。 状态管理呢? 以前:变量变了要手动 textView.text = x,还要担心哪个线程更新 UI。 现在:remember + mutableStateOf,数据变了 UI 自动重组。不用 Handler.post 了。 ViewModel 怎么用? 跟以前差不多,但更简单了。viewModel() 函数直接拿实例,collectAsStateWithLifecycle() 把 StateFlow 转成 Compose 状态,不用自己管生命周期。 LiveData 还能用,但建议新项目直接上 StateFlow。 导航呢? 以前是 Intent 跳 Activity 或 NavController 跳 Fragment。 现在是 NavController.navigate("路由"),全在 NavHost 里集中定义。类型安全的路由更优雅。 总结一句: Compose 不是学一套新框架,是把思考方式从"文件 + 生命周期 + 手动更新"切换成"函数 + 状态 + 自动重组"。刚开始不习惯,写两周就回不去了。 #compose #android开发 #jetpack #kotlin #移动开发