首页
/ DivKit 31.6.0版本发布:跨平台UI框架的全面升级

DivKit 31.6.0版本发布:跨平台UI框架的全面升级

2025-06-20 07:48:11作者:董宙帆

DivKit是一个由Yandex开源的跨平台UI框架,它允许开发者使用声明式的JSON格式来描述复杂的用户界面,并在Android、iOS和Web平台上实现一致的渲染效果。通过DivKit,开发者可以快速构建动态、高性能的UI界面,同时保持代码的可维护性和跨平台一致性。

Android客户端更新

输入控件增强

本次更新中,Android端的input控件新增了对filters属性的支持。这一特性允许开发者对用户输入内容进行更精细的控制,例如限制输入长度、过滤特定字符等。在实际应用中,这对于表单验证、搜索框等场景非常有用。

工具提示管理优化

新增的Div2Context.closeTooltips()方法为开发者提供了集中关闭所有工具提示的能力。这一改进简化了工具提示的管理逻辑,特别是在复杂交互场景中,开发者现在可以更轻松地确保UI状态的正确性。

列表构建逻辑调整

在列表渲染方面,item_builder现在拥有比items更高的优先级。这一变更使Android平台与其他平台的行为保持一致,减少了跨平台开发时的差异性。开发者在使用列表组件时应当注意这一优先级变化,以确保预期的渲染效果。

画廊组件改进

针对gallery组件的滚动位置恢复问题,本次更新修复了两个关键场景:

  1. 当第一个项目可见时的滚动位置恢复
  2. 在RTL(从右到左)配置下的滚动行为

这些修复提升了用户体验,特别是在多语言应用中,RTL布局的展示更加可靠。

视觉效果修正

shine效果的渐变角度计算得到了修正。现在角度是相对于水平线逆时针旋转的,这与标准的图形学惯例保持一致。开发者在使用这一视觉效果时可以获得更符合预期的渲染结果。

分页模式优化

修复了paging模式下画廊滚动的问题,使分页浏览体验更加流畅自然。

iOS客户端更新

输入类型与自动校正

iOS端的input控件现在会根据input_type自动调整自动校正行为。这一智能适配减少了开发者的配置工作,同时提供了更符合用户预期的输入体验。例如,在输入电话号码时自动禁用自动校正,而在输入普通文本时保持启用。

类型化动作解析

修复了类型化动作中数组解析的问题,使复杂数据结构的处理更加可靠。这一改进对于使用高级交互逻辑的应用尤为重要。

布局计算优化

layout_provider中的尺寸计算问题得到了修复,确保了布局测量的准确性。这对于依赖精确布局的自定义组件开发者来说是一个重要的改进。

Web客户端更新

滚动动作动画支持

Web端为多种滚动相关动作新增了animated参数,包括:

  • set_current_item
  • set_next_item
  • set_previous_item
  • scroll_forward
  • scroll_backward
  • scroll_to_position
  • scroll_to_end
  • scroll_to_start

这一增强使开发者能够控制滚动是否以动画形式呈现,从而在需要快速跳转或平滑滚动时提供更灵活的选择。

数据结构解析增强

Web端现在支持从字符串解析arraydict数据结构,包括通过div-action://set_variable协议和variable.set('value')编程API。数据格式采用JSON标准,这大大增强了复杂数据传递的能力。

工具提示交互改进

新增对tap_outside_actionsclose_by_tap_outside属性的支持,使工具提示的交互行为更加丰富和可控。开发者现在可以定义点击工具提示外部时的行为,并控制是否允许通过外部点击关闭提示。

RTL布局修复

修复了switch组件在RTL布局下的显示问题,确保从右到左语言的界面元素正确对齐和交互。

动作日志限制

修正了visibility_actionsdisappear_actions中动作数量与log_limit相关的错误,使动作日志系统更加可靠。

总结

DivKit 31.6.0版本带来了跨三大平台的全面改进,从基础控件功能增强到布局计算优化,从交互行为完善到国际化支持,每个更新都体现了框架对开发者体验和最终用户体验的关注。这些改进使得DivKit在构建复杂、动态、跨平台的用户界面时更加可靠和高效。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
168
2.05 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
200
279
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
954
564
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
78
72
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.01 K
396
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
347
1.34 K
openHiTLS-examplesopenHiTLS-examples
本仓将为广大高校开发者提供开源实践和创新开发平台,收集和展示openHiTLS示例代码及创新应用,欢迎大家投稿,让全世界看到您的精巧密码实现设计,也让更多人通过您的优秀成果,理解、喜爱上密码技术。
C
110
622