- 博客(14)
- 资源 (1)
- 收藏
- 关注
原创 Compose为什么推出Navigation3来代替Navigation2
Jetpack Navigation 3(Nav3)是针对现代Compose应用设计的新一代导航库。它解决了Nav2在处理Compose模式和大屏适配上的局限性,通过开发者直接控制返回栈状态、开放可扩展架构和模块化设计提升灵活性。主要特性包括内置动画支持、自适应多窗格布局、状态作用域限定和模块化API。示例代码展示了其简洁的声明式用法,支持动态添加路由和状态管理。Nav3为构建复杂导航逻辑提供了更强大的基础,特别适合现代化Android应用开发需求。
2025-11-20 19:33:34
322
原创 Compose注入ViewModel源码分析并给构造方法传参
本文分析了在Jetpack Compose中向ViewModel构造方法添加自定义参数的实现方式。通过源码解析发现,Compose的viewModel()和hiltViewModel()最终都依赖ViewModelProvider进行ViewModel创建。关键在于使用CreationExtras参数传递额外数据,或通过自定义ViewModelProvider.Factory来注入依赖。Activity会自动注入application、savedStateRegistry等基本参数,但若需要动态参数,则必须
2025-11-19 13:17:36
1171
原创 鸿蒙Text文本组件常见问题及解决方案
摘要:本文分析了Text组件的常见问题及解决方案。主要包括:1) 尾部省略号后出现空白的原因及通过设置wordBreak属性解决;2) 行末展开样式的实现方法;3) 不设置maxLines时内容超出显示省略样的解决方案;4) 文本前后添加自定义标签的两种方案。文章提供了详细的代码示例,涵盖单行和多行文本处理、自适应布局策略等技术要点,帮助开发者解决Text组件的常见显示问题。
2025-11-17 20:43:30
764
原创 鸿蒙Text文本设置选中菜单和AI菜单
摘要:Text组件支持文本选中菜单功能,通过设置copyOption实现文本选择,使用bindSelectionMenu绑定自定义菜单,并通过editMenuOptions扩展菜单项。可控制菜单弹出/关闭行为,支持点击空白处关闭菜单,还提供API屏蔽系统服务菜单项。开发者能灵活定制文本选择交互体验,增强应用功能性。
2025-11-16 18:35:58
863
原创 鸿蒙Text和Span文本显示
本文介绍了Text和Span组件的使用方法。Text组件用于显示文本内容,支持自定义文本选择菜单和资源引用;Span作为Text的子组件,可设置装饰线、颜色、大小写等样式。文章还演示了文本对齐、超长处理(省略号、跑马灯)、行高设置等功能,通过代码示例展示了各类文本样式的实现方式,包括下划线、删除线等装饰效果。
2025-11-15 22:11:45
736
原创 Compose集成Hilt依赖注入
Hilt简化了Dagger在Android应用中的依赖注入,通过自动生成代码减少样板文件。它提供标准化组件和作用域,支持Activity、Fragment等Android组件的注入。使用KSP工具提升编译速度,通过Gradle插件简化配置。关键特性包括:应用类需使用@HiltAndroidApp注解,ViewModel通过@HiltViewModel注入,Compose中可用hiltViewModel()获取作用域限定的实例。Hilt通过@InstallIn注解确定模块安装位置,并自动处理依赖项的创建和注入
2025-11-14 22:32:08
1078
原创 用Compose实现一个Banner轮播组件
本文介绍了在Jetpack Compose中实现Banner轮播效果的几种方法。主要内容包括:1) 使用HorizontalPager和VerticalPager实现基础滑动切换;2) 通过扩展数据源和调整索引实现无限轮播效果;3) 使用settledPage优化位置重置的动画效果;4) 添加定时器实现自动轮播功能;5) 创建指示器组件展示当前页位置。相比传统ViewPager,Compose方案代码更简洁,通过状态管理实现流畅的轮播体验,适合在Compose项目中实现图片轮播等展示需求。
2025-11-13 21:17:20
1617
原创 鸿蒙相对布局RelativeContainer详解
摘要: RelativeContainer是一种相对布局容器,通过子元素间的锚点关系实现复杂界面的高效布局。关键概念包括参考边界、锚点、对齐方式、链式排列和辅助线/屏障等布局工具。子元素可通过alignRules设置相对位置,并支持偏移调整。API Version 11后优化了尺寸优先级规则,建议仅使用alignRules确保精确对齐。该布局方式能有效减少嵌套深度,提升界面渲染性能,特别适用于多组件复杂排列场景。示例展示了通过锚点引用和偏移设置实现的多元素精确布局效果。
2025-11-12 19:45:11
1142
原创 Compose使用Camerax结合Zxing与MLKit实现二维码扫描
摘要:CameraX Compose库通过CameraXViewfinder组件简化了在Compose中实现二维码扫描功能。该库需要配置CameraX核心及扩展依赖(如camera-core、camera-compose等),并支持Zxing(纯离线)和MLKit(高性能)两种扫码方案:Zxing适合简单场景,MLKit支持多码识别与动态优化。实现时需申请相机权限,通过ImageAnalysis获取图像数据,再调用适配器解析。关键步骤包括使用ProcessCameraProvider绑定生命周期,并通过Pr
2025-11-11 19:33:38
1376
原创 鸿蒙弹性布局Flex详解
本文详细介绍了鸿蒙弹性布局Flex的使用方法。Flex布局通过主轴和交叉轴实现子元素的高效排列,支持设置布局方向(direction)、换行(wrap)、主轴对齐(justifyContent)和交叉轴对齐(alignItems)等特性。文章展示了不同参数的实际效果,并提供了实现搜索记录自动换行的应用示例。Flex布局简化了复杂布局的实现,是鸿蒙开发中的重要技术。
2025-11-10 21:55:45
823
原创 在Compose中使用camerax进行拍照和录视频
文章摘要:CameraX Compose库提供了CameraXViewfinder组件,简化了在Jetpack Compose中使用相机功能。通过配置依赖、申请权限、绑定生命周期等步骤,可以轻松实现相机预览、拍照、录视频等功能。组件封装了SurfaceRequest转换,支持闪光灯控制、手势缩放和聚焦操作。示例代码展示了拍照功能的实现,包括图片保存路径设置和元数据添加。该库将CameraX与Compose深度集成,为开发者提供了声明式的相机开发体验。
2025-11-08 22:45:54
1468
原创 鸿蒙线性布局Row和Column详解
摘要:线性布局通过Row和Column容器实现水平或垂直排列,是开发中最基础的布局方式。布局涉及主轴(排列方向)和交叉轴(垂直方向)概念,可通过space属性设置子元素间距,justifyContent调整主轴对齐方式,alignItems控制交叉轴对齐。支持自适应特性:Blank组件实现拉伸填充,layoutWeight或百分比宽度实现子元素按比例缩放。这些特性使线性布局能灵活适应不同屏幕尺寸,构建响应式界面。
2025-11-07 13:32:27
590
原创 Compose从相册和系统相机拍照获取照片
摘要:本文介绍了如何在Compose中实现照片和视频选择功能。通过PickVisualMedia和PickMultipleVisualMedia简化集成,支持单/多文件选择。详细讲解了权限检查、相机调用(需FileProvider)、相册选择等实现方法,包括底部弹窗UI处理。重点说明了Android 4.4+的系统兼容方案,当原生选择器不可用时自动降级为文档选择器,并提供了完整的代码示例和配置说明。
2025-11-04 19:30:12
933
原创 鸿蒙通用属性与Stack布局
本文介绍了通用属性和Stack容器的使用方法。通用属性包括基础属性(如显隐控制、背景设置)、布局与边框(如尺寸、位置、边框样式)及视效(如透明度、渐变效果)。Stack容器用于实现层叠布局,支持元素重叠和定位,常用于广告、卡片等场景。文章还提出了Stack容器优化方案,建议使用overlay属性和ColorMetrics替代嵌套组件以减少节点数,提升性能。示例代码展示了属性设置和优化前后的实现效果对比。
2025-11-04 10:09:05
1208
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅