Combo Breaker未来路线图前瞻:形状内环绕、BiDi支持与8项性能优化计划 Combo Breaker未来路线图前瞻形状内环绕、BiDi支持与8项性能优化计划【免费下载链接】combo-breakerText layout for Compose to flow text around arbitrary shapes.项目地址: https://gitcode.com/gh_mirrors/co/combo-breakerCombo Breaker是一款为 Jetpack Compose 打造的文本流式排版库核心能力是让文字自动环绕任意形状流动实现类似杂志排版的破版效果。如果你正在寻找 Compose 文本环绕方案这篇路线图前瞻将带你提前了解官方规划的形状内环绕、BiDi双向文本支持与性能优化计划帮助你判断现在是否值得引入这个开源组件。先认识一下Combo Breaker 能做什么在 Compose 中Text组件只能整块铺满容器无法躲开中间的图片和装饰元素。而 Combo Breaker 的TextFlow组合式组件会像Box一样工作并自动让文字从它的子元素旁边绕过去它当前已经具备这些能力多栏排版columns参数即可把文字分成多栏富文本支持AnnotatedString多种文字样式任意形状任何Path都能作为环绕轮廓⚖️两端对齐 连字符换行Hyphenation 兼容 Android API 29核心 API 分为两层不依赖 Material3 的 BasicTextFlow.kt基础库以及面向 Material3 的 TextFlow.kt。规划一支持文字流入形状内部路线图中最具想象力的一条是让文字在形状内部流动Support flowing text inside shapes。目前所有环绕都发生在形状外部配合FlowType的六种模式控制文字走左边、右边、两侧或跟随布局方向// FlowType 支持 OutsideLeft / OutsideRight / Outside / // OutsideStart / OutsideEnd / None 六种环绕模式这一枚举定义在 BasicTextFlow.kt 中。一旦形状内流动落地心形、气泡等封闭轮廓就能直接容纳文字排版玩法会彻底打开规划二BiDi 双向文本支持README 路线图明确写道BiDi 文本尚未经过测试目前很可能无法正常工作。也就是说希伯来语、阿拉伯语这类从右向左的段落与LTR文本混排的场景是官方接下来要重点补齐的短板。值得一提的是RTL 布局本身已经受支持——FlowType.OutsideStart/OutsideEnd会随布局方向自动翻转环绕侧见 BasicTextFlow.kt 中的resolve逻辑列布局与形状摆放也兼容 RTL。未来补齐 BiDi 后多语言应用的杂志式排版将不再受限。规划三性能优化与算法改进这是路线图中着墨最多的部分大致可以分为三条主线1. 抛弃昂贵的Path.op来实现边距目前形状周围的 margin 依赖Path.op做路径运算官方直言它对复杂路径开销过大计划改用不依赖Path.op的边距实现方式。形状越复杂比如从位图提取的轮廓这项优化的收益越大。2. 用射线投射Beam Cast替代纯几何求交当前布局算法要解决大量线段相交问题核心数据结构是把路径压平后构建的红黑树区间树IntervalTree.kt供 FlowShape.kt 在摆放每行文字时做快速区间查询主算法位于 TextLayout.kt。官方计划调研射线投射这种更简单的方式替代纯几何求交有望显著降低布局耗时。3. 图像轮廓提取支持多线程从图片提取环绕轮廓配合 pathway 库的Bitmap.toPath目前开销不小路线图计划将其多线程化让图片自动变环绕形状这条最爽的用法更快可用。规划四其余体验增强清单除了三大主线官方还列出了若干实用改进改进项说明回退到更低 API目前要求 API 29计划支持更早版本末行省略号文字放不进布局区域时支持对最后一行做 ellipsize更完整的TextFlowLayoutResult提供更全面的排版结果 API文本相对定位支持以文字为参照物摆放环绕形状修复混合行高问题不同样式的行高混排时环绕可能出现偏差将被修复完整清单可以直接查阅 README.md 的 Roadmap 小节。如何快速上手体验想第一时间感受这些能力并为路线图投票只需克隆仓库运行 Demo 工程git clone https://gitcode.com/gh_mirrors/co/combo-breakerDemo 位于 ComboBreakerActivity.kt内置了环绕单字母 T、圆形徽章、麦克风轮廓等多种示例滑动条可实时调节栏数。正式项目中引入则只需在 Gradle 中加入dev.romainguy:combo-breaker:0.9.0基础版或dev.romainguy:combo-breaker-material3:0.9.0Material3 版。总结一个值得长期跟踪的排版库Combo Breaker 已经把任意形状环绕这件 Compose 生态里几乎无人做完整的事做到了可用水平而路线图上的形状内文字流动、BiDi 支持、射线投射算法、多线程轮廓提取恰好补在了排版体验最关键的位置。如果你在做阅读类、杂志风或图文混排的 App建议现在就开始跟进这个项目——它的下一步演进方向正是大多数 Compose 应用最需要的能力。【免费下载链接】combo-breakerText layout for Compose to flow text around arbitrary shapes.项目地址: https://gitcode.com/gh_mirrors/co/combo-breaker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

【案例说明】融合知识图谱、大语言模型和 AI Agent 完成能源领域知识工程工作

【案例说明】融合知识图谱、大语言模型和 AI Agent 完成能源领域知识工程工作

关于知识工程,前面写过【新手上路常见问答】关于知识工程-CSDN博客从知识到智慧:知识图谱还要走多远?_cayley 知识图谱-CSDN博客【学习资源】知识图谱与大语言模型融合_oneke知识图谱-CSDN博客随着技术的快速发展,知识工程的实现有…

2026/8/25 14:19:43
SAP Cloud Connector 到底解决了什么问题,从安全隧道到身份传递,理解 SAP 混合架构的关键连接层

SAP Cloud Connector 到底解决了什么问题,从安全隧道到身份传递,理解 SAP 混合架构的关键连接层

一家企业已经运行了很多年的 SAP S/4HANA、SAP ERP 或 SAP BW 系统,核心业务数据仍然留在企业内网。新的应用却越来越多地部署在 SAP BTP 上,可能是 CAP 应用,也可能是 SAP Integration Suite、SAP Build Work Zone、SAP Datasphere,甚至是 SAP BTP ABAP Environment。 此…

2026/8/25 14:19:43
C:\Users\<user id>\.claude\projects 到底是什么,Claude Code 为什么会在这里保存大量文件

C:\Users\<user id>\.claude\projects 到底是什么,Claude Code 为什么会在这里保存大量文件

在 Windows 上使用 Claude Code 一段时间以后,我们很容易在用户目录里发现这样一个位置,C:\Users\<user id>\.claude\projects。有时里面只有几个目录,有时却会出现几十个甚至上百个名称很奇怪的目录,再往里面看,还能找到大量 .jsonl 文件、memory 文件夹、以 UUID …

2026/8/25 14:19:43
电动车租车系统商家端怎么配置?2026 年 40+ 运营参数模块设计详

电动车租车系统商家端怎么配置?2026 年 40+ 运营参数模块设计详

商家系统配置模块要解决什么问题&#xff1f; 分时租车业务为什么需要参数化配置 分时租车平台的日常运营涉及车辆调度、电量管理、服务区管控、押金退款、报警通知等多个业务域&#xff0c;每个域都存在大量可调参数。如果这些参数硬编码在代码中&#xff0c;每次调整都需要发…

2026/8/25 14:19:43
bindFramebuffer

bindFramebuffer

代码里两处 bindFramebuffer 分别干什么先把代码里两处关键位置摘出来&#xff1a;第一处&#xff1a;初始化阶段&#xff0c;构建 FBOconst fbo gl.createFramebuffer(); const pickTex gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, pickTex); gl.texImage2D(gl.TEXT…

2026/8/25 14:19:43
WRC上听了三小时!越发感觉具身的ChatGPT时刻正在逼近。

WRC上听了三小时!越发感觉具身的ChatGPT时刻正在逼近。

19号WRC第一天&#xff0c;就去各种探展。 当天下午&#xff0c;银河通用举办了一场叫“具身智能大模型的进化之路”的论坛。 现场来的嘉宾很重磅&#xff0c;有银河通用创始人王鹤、王晓刚&#xff08;大晓机器人&#xff09;、王仲远&#xff08;北京智源人工智能研究院院长…

2026/8/25 14:14:43