热门 最新 精选 话题 上榜
在使用 MPAndroidChart 进行数据可视化时,我遇到了一个需要隐藏数据点原点的问题。这是一个常见的技术需求,尤其是在某些情况下,我们仅希望展示连线而不希望图表中出现数据点标记。 ## 初始技术痛点 在开发过程中,用户希望图表的视觉效果更加简洁,隐藏某些视觉元素以提高可读性。这里的核心痛点就是如何在不改变数据表示的情况下,隐藏图表中的原点标记。 ```mermaid timeline
在移动设备快速发展的今天,PDA(个人数字助理)结合RFID(射频识别)技术的应用逐渐增多。本篇博文将带领大家一步步了解如何在Android设备上实现PDA读取RFID的功能。我们将详细记录整个过程,包括环境准备、分步指南、配置详解、验证测试、排错指南和扩展应用,助你快速入门。 ## 环境准备 ### 软硬件要求 - **软件环境**: - Android Studio 4.0+ -
原创 6月前
144阅读
在日常使用PVE(Proxmox Virtual Environment)虚拟化管理系统时,有时我们需要进入BIOS以进行硬件设置或调整启动顺序。但很多用户在这方面可能会遇到困惑,尤其是如何顺利进入BIOS界面。本文将详细记录解决“PVE怎么进BIOS”这一问题的过程。 在进入主题之前,首先让我来描述一下现象。用户在重启PVE服务器时,常常不知道应该在何时按哪个按键才能进入BIOS,造成了反复尝
原创 6月前
45阅读
1.1 Gradle构建卡在"Downloading..."半小时? 症状:进度条卡死,控制台疯狂刷下载日志 急救三连: # 项目根目录执行(配图:Terminal窗口截图) ./gradlew clean # 清理缓存 rm -rf ~/.gradle/caches # 删除全局缓存 修改build.gradle镜像源 → 阿里云Maven仓库 groovy
原创 6月前
95阅读
在 HarmonyOS 开发中,应用性能优化是提升用户体验的关键。本文将结合实际案例,分享一些实用的 HarmonyOS 应用性能优化技巧。一、内存管理优化内存泄漏是应用性能优化中的常见问题。在 HarmonyOS 开发中,合理管理内存,避免内存泄漏,可以有效提升应用性能。实践案例:Ability 生命周期管理在 HarmonyOS 中,Ability 的生命周期管理至关重要。当 Ability
原创 精选 6月前
244阅读
1 手动设置状态栏的颜色: 实现步骤: 获取并缓存窗口对象 在打开目标页面时,使用setWindowSystemBarProperties接口设置状态栏属性 获取并缓存窗口对象 2. 对顶部组件使用expandSafeArea属性扩展安全区域属性,实现状态栏沉浸
原创 6月前
121阅读
HarmonyOS:实现状态栏背景颜色沉浸
removeMissionAfterTerminate字段的默认值:该字段的默认值为false,意味着如果不进行配置,默认情况下应用会在最近任务列表中保留快照。 配置影响:仅当removeMissionAfterTerminate被设置为true时,调用terminateSelf()后应用才不会在最近任务列表中保留快照。
拖拽流程可以分为三部分:发起拖拽、拖拽中和释放拖拽。其中,拖出方通过 draggable() 和 onDragStart() 等接口处理拖出数据,拖入方通过allowDrop()和onDrop()等接口处理拖入数据,拖拽数据使用UDMF统一数据对象UnifiedData 进行封装。下面,将按照这三个部分依次介绍拖拽的基础实现。
原创 精选 6月前
252阅读
HarmonyOS:统一拖拽
网格对象的编辑排序是用于网格对象的编辑、拖动排序、新增和删除。
Grid网格元素拖拽交换功能实现是通过Grid容器组件、组合手势、显式动画结合来实现的。 Grid组件可以构建网格元素布局。 组合手势可以实现元素拖拽交换的效果。 显式动画可以给元素拖拽交换的过程中,添加动画效果。
原创 6月前
177阅读
HarmonyOS:Grid网格元素拖拽交换开发示例
设备协同数据库,针对每条记录,Key的长度≤896 Byte,Value的长度<4 MB。 单版本数据库,针对每条记录,Key的长度≤1 KB,Value的长度<4 MB。 每个应用程序最多支持同时打开16个键值型分布式数据库。 键值型数据库事件回调方法中不允许进行阻塞操作,例如修改UI组件。
使用Node-API实现跨语言交互,首先需要按照Node-API的机制实现模块的注册和加载等相关动作。 ArkTS/JS侧:实现C++方法的调用。代码比较简单,import一个对应的so库后,即可调用C++方法。 Native侧:.cpp文件,实现模块的注册。需要提供注册lib库的名称,并在注册回调方法中定义接口的映射关系,即Native方法及对应的JS/ArkTS接口名称等。
原创 6月前
131阅读
HarmonyOS: 使用Node-API实现跨语言交互开发流程
Native Module:开发者使用Node-API开发的模块,用于在ArkTS侧导入使用。 Node-API:实现ArkTS与C/C++交互的逻辑。 ModuleManager:Native模块管理,包括加载、查找等。 ScopeManager:管理napi_value的生命周期。 ReferenceManager:管理napi_ref的生命周期。 NativeEngine:ArkTS引擎抽象层,统一ArkTS引擎在Node-API层的接口行为。 ArkCompiler ArkTS Runtime:ArkTS运行时。
开发者使用Web组件将应用侧代码注册到前端页面中,注册完成之后,前端页面中使用注册的对象名称就可以调用应用侧的函数,实现在前端页面中调用应用侧方法。 注册应用侧代码有两种方式: 方式一:种在Web组件初始化调用,使用javaScriptProxy()接口。 方式二:在Web组件初始化完成后调用,使用registerJavaScriptProxy()接口,需要和deleteJavaScriptRegister接口配合使用,防止内存泄漏。
规格与约束 建议配置渲染模式为同步渲染模式,避免因为组件大小超出限制导致异常场景(白屏,布局错误)。 建议配置过滚动模式为关闭状态。当过滚动模式开启时,当用户在Web界面上滑动到边缘时,Web会通过弹性动画弹回界面,会与Scroll组件的回弹相互冲突,影响体验。 键盘避让属性配置为RESIZE_CONTENT时,该避让模式不生效。 不支持对页面进行缩放。 不支持通过Web组件的height属性修改组件高度。 仅支持根据页面内容自适应组件高度,不支持自适应宽度。
原创 6月前
200阅读
HarmonyOS:Web组件大小自适应页面内容布局
在List组件中使用ListItemGroup对项目进行分组,可以构建二维列表。 在List组件中可以直接使用一个或者多个ListItemGroup组件,ListItemGroup的宽度默认充满List组件。在初始化ListItemGroup时,可通过header参数设置列表分组的头部组件。 List组件的sticky属性配合ListItemGroup组件使用,用于设置ListItemGroup中的头部组件是否呈现吸顶效果或者尾部组件是否呈现吸底效果。 通过给List组件设置sticky属性为StickyStyle.Header,即可实现列表的粘性标题效果。如果需要支持吸底效果,可以通过footer参数初始化ListItemGroup的底部组件,并将sticky属性设置为StickyStyle.Footer。
电话号码格式化通过PhoneNumberFormat的format接口实现
原创 6月前
113阅读
HarmonyOS:电话号码格式化
创建DateTimeFormat对象 传入单独的locale参数或locale列表,若传入列表使用第一个有效的locale创建对象。不传入locale参数时,使用系统当前的locale创建对象。 构造函数支持通过DateTimeOptions设置不同的时间日期格式
原创 6月前
118阅读
HarmonyOS:时间日期国际化
import { systemDateTime } from '@kit.BasicServicesKit';
原创 6月前
121阅读
HarmonyOS:获取系统时间及系统时区
import { deviceInfo } from '@kit.BasicServicesKit';
原创 6月前
183阅读
HarmonyOS:查询设备信息
ArkWeb是多进程模型,分为应用进程、Web渲染进程、Web GPU进程、Web孵化进程和Foundation进程。
原创 6月前
156阅读
HarmonyOS:ArkWeb进程
应用需要获取用户授权才能发送通知。在通知发布前调用requestEnableNotification()方法,弹窗让用户选择是否允许发送通知,后续再次调用requestEnableNotification()方法时,则不再弹窗。 发布普通文本类型通知,需要设置ContentType类型为ContentType.NOTIFICATION_CONTENT_BASIC_TEXT。 通过设置字段groupName,就可以对通知进行分组,给groupName设置不同的值可以将通知分为不同的组。
原创 6月前
292阅读
HarmonyOS:给您的应用添加通知
Web组件提供了丰富的组件生命周期回调接口,通过这些回调接口,开发者可以感知Web组件的生命周期状态变化,进行相关的业务处理。 Web组件的状态主要包括:Controller绑定到Web组件、网页加载开始、网页加载进度、网页加载结束、页面即将可见等。
使用系统提供的动画接口 系统动画接口是指通过使用系统提供的动画框架和接口来实现动画效果。在移动应用开发中,通常会使用属性动画来实现各种动画效果。通过可动画属性改变引起UI上产生的连续视觉效果,即为属性动画。属性动画是最基础易懂的动画,ArkUI提供两种属性动画接口animateTo和animation驱动组件属性按照动画曲线等动画参数进行连续的变化,产生属性动画。使用系统提供的动画接口可以简化动画的实现过程,并且能够充分利用系统优化的动画计算和渲染能力,从而提高动画的性能和流畅度。
合理选择装饰器 避免不必要的状态变量的使用 最小化状态共享范围 在组件中使用@Watch装饰器监听数据源,当数据变化时执行业务逻辑,确保只有满足条件的组件进行刷新。
在ForEach循环渲染过程中,系统会为每个数组元素生成一个唯一且持久的键值,用于标识对应的组件。当这个键值变化时,ArkUI框架将视为该数组元素已被替换或修改,并会基于新的键值创建一个新的组件。 ForEach提供了一个名为keyGenerator的参数,这是一个函数,开发者可以通过它自定义键值的生成规则。如果开发者没有定义keyGenerator函数,则ArkUI框架会使用默认的键值生成函数,即(item: Object, index: number) => { return index + ‘__’ + JSON.stringify(item); }。
shortcuts标识应用的快捷方式信息。标签值为数组,包含四个子标签shortcutId、label、icon、wants。 metadata中指定shortcut信息,其中: name:指定shortcuts的名称,使用ohos.ability.shortcuts作为shortcuts信息的标识。 resource:指定shortcuts信息的资源位置。
原创 6月前
100阅读
HarmonyOS:创建应用静态快捷方式
ArkUI采用了 Model-View-ViewModel(MVVM)架构模式。MVVM 将应用分为Model、View和ViewModel三个核心部分,实现数据、视图与逻辑的分离。通过这种模式,UI可以随着状态的变化自动更新,无需手动处理,从而更加高效地管理数据和视图的绑定与更新。 Model:负责存储和管理应用的数据以及业务逻辑,不直接与用户界面交互。通常从后端接口获取数据,是应用程序的数据基础,确保数据的一致性和完整性。 View:负责用户界面展示数据并与用户交互,不包含任何业务逻辑。它通过绑定ViewModel层提供的数据来动态更新UI。 ViewModel:负责管理UI状态和交互逻辑。作为连接Model和View的桥梁,ViewModel监控Model数据的变化,通知View更新UI,同时处理用户交互事件并转换为数据操作。
原创 6月前
101阅读
HarmonyOS:MVVM模式
使用@ObjectLink代替@Prop减少不必要的深拷贝; 不使用状态变量强行更新非状态变量关联组件; 精准控制状态变量关联的组件数;
关系型数据库基于SQLite组件,适用于存储包含复杂关系数据的场景,比如一个班级的学生信息,需要包括姓名、学号、各科成绩等,又或者公司的雇员信息,需要包括姓名、工号、职位等,由于数据之间有较强的对应关系,复杂程度比键值型数据更高,此时需要使用关系型数据库来持久化保存数据。
原创 6月前
101阅读
HarmonyOS:通过(SQLite)关系型数据库实现数据持久化