登录社区云,与社区用户共同成长
邀请您加入社区
本文从 Compose 自定义 Layout 的核心机制出发,拆解 Measure 与 Place 两阶段流程,说明父子约束如何传递、滚动方向无界约束为何容易出错,以及 constraints.copy、coerceIn 的真实作用。通过 HorizontalTapeLayout 示例,理解何时该写自定义 Layout,何时应优先使用 Row、Box 或 ConstraintLayout。
文章摘要: 本文以Compose首页计数器为例,解析Compose核心机制。首先建立@Composable函数的心智模型,说明其通过编译器生成UI树记录。重点讲解状态管理:remember保存组合内状态,mutableStateOf建立观察关系触发重组。通过HomeViewModel展示状态容器设计——使用不可变data class和StateFlow实现单向数据流。
为国内开发环境提供实用的Compose代码参考,帮助开发者快速掌握现代Android开发技术。项目完全开源免费,提供GitHub和Gitee双平台访问,包含详细的功能模块开发进度和完整的接口文档
如何在旧Android项目中渐进式引入Compose?本文提供了实用方案:1)通过ComposeView在XML布局中嵌入Compose组件;2)使用AndroidView在Compose中复用传统View;3)利用Theme Adapter保持样式统一。建议采取分阶段策略:新页面全用Compose,旧页面逐步替换复杂组件,重大重构时才全量迁移。文章强调混合开发是平衡理想与现实的务实选择,既保留现
Android 开发 - Android 开发引入(APP 运行环境、APP 开发技术路线、APP 内置数据库、工程目录结构...)
简易实现一个可流式回答的AI问答工具客户端,包括流式读取数据,流式显示文本内容
Google发布AndroidAgent工具链,标志着Android开发进入Agent时代。该工具链包含三大核心组件:AndroidCLI(命令行接口)标准化工程动作,解决LLM"懂代码但不懂工程"的痛点;AndroidSkills将专家流程可编程化,提供精准的开发指导;AndroidKnowledgeBase实时更新官方文档,对抗知识过时问题。这套组合拳通过接口化工程动作、规
本文深入解析Android DataBinding技术的工作原理,主要分为编译期和运行期两个阶段: 编译期处理: 编译器扫描带<layout>标签的XML布局文件,自动生成对应Binding类(如ActivityMainBinding) 生成四类核心文件:BR.java(变量ID索引)、DataBinderMapperImpl.java(布局映射表)、抽象Binding类和具体实现类
Android 警告信息:Permission exists without corresponding hardware <uses-feature android:name...
Android Gradle 命名空间问题:Namespace not specified. Please specify a namespace...
Jetpack Compose的日期时间选择器【样式可自定义,核心代码是滑轮以及年月日边界处理】
解决Jetpack Compose中TextField无法设置内边距的问题
Android Jetpack Compose - enableEdgeToEdge 函数、MaterialTheme 函数、remember 函数
记录一些常用的compose布局用的容器的基本用法
val publishedAt: Long // 时间戳(毫秒)使用 标记为 Room 表;@Entityid自增主键;其他字段根据简单新闻结构设计。步骤 3:本地数据库 Room3.1 Dao 接口@Dao// 观察所有文章(按时间倒序)// 清空表// 批量插入(冲突时替换)本文完整演示了一个真实且可运行基本架构设计(MVVM + Repository);数据层实现(Room + Retrof
在 Jetpack Compose Glance 1.1.0 中,官方小组件的 Glance Text 不支持自定义字体,仅支持默认的 Serif、SansSerif、Monospace 和 Cursive 字体。要实现自定义字体,可以通过将文本渲染为 Bitmap 的方式来实现。具体步骤包括:使用 Paint 类设置字体、颜色和大小,然后通过 Canvas 将文本绘制到 Bitmap 上。最后,
GitMob是一款纯打造的现代化 Android GitHub 客户端。它提供了深度的仓库管理体验,旨在让你在手机上也能高效处理开发任务。💡 AI 驱动开发:本项目完全由 AI(Claude)指导生成。
Android Jetpack Compose - TopAppBar、BottomAppBar、Scaffold
/这里获取传参过来数据//可以传入SettingPage中,然后在页面中使用数据,这里我就没写了这里上面,可以看到加了个{id}(有点类似Spring Boot里的接口写法),就是标明需要传参的意思这里实际上还可以声明类型,默认不写的话,就是说**id是String类型的**arguments这个变量实际上就是我们Intent中常用的Bundle,所以获取数值的是调用了getString()方法。
png, svg转矢量图,webp到底用什么格式的图片呢?在Android开发中选择图片资源格式(PNG、SVG、WebP)需综合考虑。
本文为Android开发者详细解析如何将本地项目上传至GitHub,并结合Android Studio的图形化工具实现高效的Git操作。首先,通过GitHub创建仓库、初始化本地Git、关联远程仓库、提交并推送代码,完成项目的云端托管,确保代码的安全性与团队协作便捷性。其次,重点介绍Android Studio内置的Git功能,包括仓库初始化、克隆远程项目、提交与推送更改、拉取远程更新、分支管理及
本文探讨了Compose Navigation从字符串路由到类型安全的进化之路。最新版本通过Kotlin序列化实现了对象驱动的路由定义,告别了易错的字符串拼接方式。文章展示了如何利用data class定义类型安全路由,实现导航逻辑与UI的深度解耦,并介绍了与Hilt、ViewModel的集成方案。此外还覆盖了深层链接和动画等复杂场景的处理方法。这种类型安全的导航方式不仅能在编译期发现错误,还能保
实现如图所示仿电池样式的进度条。
2. 基础组件:Text, Button, Column, Row3. 状态管理:remember, mutableStateOf4. 事件处理:点击、输入综合练习:计数器App。
Jetpack Core-Animation不是一个直接面向 UI 的动画 API(如 Compose Animation 或 ObjectAnimator),它是一个现代化的、基于 Kotlin 的底层动画引擎,可以将其理解为一个强大的“动画发动机”。我们有理由相信,随着库的成熟,它将成为 Compose 动画乃至整个 Android 平台的底层基石,与更多的 Jetpack 组件深度集成,共同
详细解释 MVVM 设计模型是目前 Android(乃至前端 Vue、iOS 等)最主流、官方最推荐的 UI 架构模式。
记录了使用AndroidStudio2022.3 Giraffe版本在搭建环境时遇到的问题,包括连接超时,gradle无法读取等。
上图是Google官网对于Compose的介绍图,熟悉Flutter的朋友,可能会觉得,这代码格式,似曾相识啊,但是也仅仅是因为都是声明式编程,格式上有稍微相似而已。那么,Compose到底是什么?Compose=========================================================================Google是这么定义的几个关键定位是工具
不同于文件的存储方式,如果要保存的键值集合相对较小,则应使用SharedReferences API。SharedReferences对象指向一个包含键值对的文件,并提供简单的读写方法。本文从SharedReferences开始逐步引入Preference、MMKV。
Android 开发 Base64 问题:java.lang.IllegalArgumentException: Illegal base64 character 3a
解决:room无论如何怎么修改数据库版本都报错Room cannot verify the data integrity
try {DataStore 是 Google 面向现代 Android 架构推出的响应式本地数据存储方案,它通过协程、Flow 和类型安全特性,为开发者提供更强的能力和更清晰的数据管理模型。但这并不意味着 SharedPreferences 立即过时。两者各有适用场景:如果你正在开发一个新的 MVVM 架构项目,推荐使用 DataStore,它能很好地与 ViewModel、StateFlow
跳槽季整理面试题已经成了我多年的习惯!在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展
Android多进程开发 - AIDL 最简单的实现、传递数据大小限制
如果用一个公式来定义未来开发的效率:没有 Compose 的基础,你无法辨别 AI 是否在“胡说八道”;而没有 AI 的加持,你将永远被淹没在繁琐的胶水代码中。这十篇专栏,我们从思维出发,历经状态、架构、性能、副作用、导航、混合开发、绘图、测试,最后在AI 赋能中画上句号。Android 开发的黄金时代并没有过去,它只是在进化。在这个时代,**“学会学习”**比“学会代码”更重要。希望这套系列文章
摘要:Android Jetpack Compose核心组件体系分为7大类:1.基础UI组件(Text/Image等)替代传统View控件;2.布局组件(Column/LazyColumn等)构建界面结构,其中懒加载布局优化列表性能;3.交互组件(按钮/输入框/选择器等)处理用户操作;4.容器组件(卡片/弹窗等)增强样式功能;5.导航组件实现页面跳转;6.动画组件提升交互体验;7.辅助工具(状态管
用一句话概括,大体就是:“不要自己内部创建依赖,而是让外部提供的方式来完成”;核心思想是将程序的控制权从应用程序代码本身转移给一个外部容器或框架;3.2.5中使用到了Singleton注解,这个是作用域注解,作用是为依赖项提供生命周期管理;作用域必须与Component的作用域匹配,组件跟作用域关系如下:作用域注解绑定到的组件生命周期@Singleton应用级别(整个应用生命周期)Activity
摘要 本文介绍了如何将Jetpack Compose开发的模块嵌入传统View布局的Android项目中。项目采用模块化开发,传统View代码保留在app模块,而Compose功能开发在独立模块gapp-quotation中。重点阐述了通过Fragment的onCreateView方法,使用ComposeView将Compose界面(如QuotationMain)转换为View并嵌入传统布局的实践
——一个关于“代码解耦”与“开发效率”的江湖故事2012年,Dagger横空出世,凭借编译时依赖注入的独门绝技,成为Java界的“解耦大师”。它的核心哲学是:“依赖关系必须清晰,代码生成绝不手软!”但Dagger的硬核操作也让开发者叫苦不迭:程序员吐槽:“写Dagger配置比写业务代码还累,简直是‘配置地狱’!”2020年,谷歌推出Hilt,口号是:“让依赖注入像点外卖一样简单!”对比示例:程序员
LiveData是一个可以被观察的数据持有类,它可以感知并遵循Activity、Fragment或Service等组件的生命周期。其中主要包含的方法有:setValue、postValue以及observe;
此前发过一篇文章介绍了我开发的Desktop端端跨平台Android设备调试软件——DebugManager。包含了基础设备信息,应用管理,文件管理,性能监测,主题切换等。记录为开发AI大模型对话功能页面中,对TextField输入框回车键监听问题的解决。
Android 对话框 - 对话框全屏显示(设置 Window 属性、使用自定义样式、继承 DialogFragment 实现、继承 Dialog 实现)
android jetpack
——android jetpack
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net