text-vertical

  
TODO
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2026 年 10 月 21 日 - - 1.0.0-beta03 -

声明依赖项

如需添加 Text 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库。

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

Groovy

dependencies {
    implementation "androidx.text:text-vertical:1.0.0-beta03"
}

Kotlin

dependencies {
    implementation("androidx.text:text-vertical:1.0.0-beta03")
}

如需详细了解依赖项,请参阅添加 build 依赖项。

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档。

Text-Vertical

版本 1.0

版本 1.0.0-beta03

2026 年 10 月 21 日

发布了 androidx.text:text-vertical:1.0.0-beta03 和 androidx.text:text-vertical-compose:1.0.0-beta03。版本 1.0.0-beta03 包含这些提交内容。

注意:这应该是最后一个 Beta 版。

新功能

  • 向 VerticalTextSampleActivity 添加了“字幕提示”标签页,以演示 VerticalText 功能,包括使用换行高度、toVerticalTextStyle()、RubySpan、EmphasisSpan、纵中横、FontShearSpan、UnderlineSpan 和 StrikethroughSpan 进行渲染。I4799d1 b/571750156

bug 修复

  • 修复了使用具有较大顶部和底部内边距的字体(例如 Noto Sans JP)时水平 RubySpan 和 EmphasisSpan 行高的问题。(Ib0507、b/557316470)- 感谢 Numero-san 的报告!
  • 将 Compose 依赖项更新为 1.12.1。(I9ee7f、b/569780191)
  • VerticalText 现在会应用 AnnotatedString span 样式,并在语义中保留 AnnotatedString span 和注解。(Ib077f、b/502088091)
  • 修复了 RubySpan 和 EmphasisSpan 在水平布局中无法填充 TextPaint.bgColor 或 BackgroundColorSpan 的背景颜色的问题。(I66ba8、b/561269843)
  • 修复了在 span 设置 Paint.Style.STROKE 后,竖排文本中的背景颜色被绘制为轮廓的问题。(I692ed、b/566429122)
  • VerticalTextLayout 中涵盖完整 RubySpan 范围的 CharacterStyle span 现在也适用于旁注文本,并且 RubySpan.textScale 会缩放它们设置的字体大小。现在,背景颜色还会填充较短的旁注文本和基础文本上方和下方的空白区域。(I0dadc、b/564268825)
  • 修复了竖排文本具有多个样式运行时 VerticalTextLayout 背景高度的问题。(I7e31a、b/565211671)
  • 修复了 VerticalTextStyle.background 更改为 Color.Unspecified 时 VerticalText 保留过时背景颜色的问题。(Ia0861、b/565211671)
  • 修复了在复制调用方绘制时,水平旁注和强调布局会跳过 TextPaint 字段的问题。(Ia3043、b/561269843)
  • VerticalText 现在会从 RubySpan 中的纯 String 文本和纯 String 旁注标记后面绘制 VerticalTextStyle.background 中的背景颜色。(If0493、b/564268825)
  • 修复了水平旁注布局在初始化后导致共享工作绘制缩放的问题。(I33760、b/561269843)
  • 修复了竖排文本示例应用,使平移手势无法将文本移出视图。(If0108、b/563461635)
  • 修复了测试应用,以演示着重号位置 (I3ffa3, b/559972132)
  • 为 LineLayout、TextUtils、CanvasCompat 和 PaintCompat 添加了 Kex 符号执行分支测试。I47edf b/569212211

版本 1.0.0-beta02

2026 年 9 月 23 日

发布了 androidx.text:text-vertical:1.0.0-beta02 和 androidx.text:text-vertical-compose:1.0.0-beta02。版本 1.0.0-beta02 包含这些提交内容。

重要变更

  • 我们添加了测试用例,以确保向后兼容至 API 24 (Android 7.0),结果非常令人满意!
  • 这些库现在以 Kotlin 2.2 为目标,并且需要 kotlinc 2.2 (I82396, b/498369605)
  • 竖排文本库现在会针对 SDK 37 进行编译。使用这些 API 的应用必须针对 SDK 37 进行编译,并使用 AGP 9.1.0 或更高版本。(I0f757、b/562182206)

bug 修复

  • EmphasisSpan.position 现在会移动着重号。 AnnotationPosition.Before 会将标记置于水平文本上方和垂直文本右侧。AnnotationPosition.After 将其放在另一侧。 (Ic9bfd、b/559972132)
  • 修复了水平文本布局中的着重号比例。预留的行高不再假定标记未缩放。(I6d7fe、b/562254557)
  • 修复了垂直文本前进的向后移植问题。向后移植忽略了 API 级别低于 34 的请求偏移量。(I8877a、b/495457561)
  • 修复了在低于 28 的 API 级别上,水平旁注文本预留过多垂直空间的问题,这可能会导致行高超出必要范围。(Iceb60、b/561323466)
  • 针对竖排旁注和文本方向的测试现在可在所有受支持的 API 级别上运行。(If07d4、b/495457561)
  • androidx.lifecycle:lifecycle-runtime 依赖项已更新至 2.10.0。此版本是捆绑的生命周期运行时 lint 检查在 AGP 9.5.0-alpha04 或更高版本中运行所必需的。(I7264b、b/556807521)
  • 修复了在水平文本布局中 RubySpan.position 被忽略的问题。AnnotationPosition.After 现在可在基础文本下方正确呈现注音文本。(Iaffa1、b/559972124、b/561323466)
  • 修复了在竖排文本布局中 RubySpan.position 被忽略的问题。AnnotationPosition.After 现在会在基础文本左侧正确呈现旁注标记文本。(I0be1c、b/495457561)
  • 将 Compose 依赖项升级到 1.11.4 (I9ef07, b/536925341)

版本 1.0.0-beta01

2026 年 8 月 26 日

发布了 androidx.text:text-vertical:1.0.0-beta01 和 androidx.text:text-vertical-compose:1.0.0-beta01。版本 1.0.0-beta01 包含这些提交内容。

API 变更

bug 修复

  • 更新了 combineUpright 的文档。(Ib534b、b/548992014)
  • 从 VerticalText 中移除了不正确的 API 36 最低要求文档。(I4f8e9、b/549288799)
  • 在向后移植模式下,使用计算出的上升比率作为垂直基线偏移量 (07339d7, b/502088091)

版本 1.0.0-alpha06

2026 年 7 月 29 日

发布了 androidx.text:text-vertical:1.0.0-alpha06 和 androidx.text:text-vertical-compose:1.0.0-alpha06。版本 1.0.0-alpha06 包含这些提交内容。

重要变更

  • 此版本是该库的最后一个计划内 Alpha 版。
  • 最终确定并优化了 VerticalText 可组合项中的参数

API 变更

  • 引入了 VerticalTextStyle,用于垂直文本布局。(I647a8、b/512424512)
  • 在 text-vertical-compose 库中引入了新的公共 DSL(VerticalTextScope 和 buildVerticalText)(I6faa7、b/502088091)
  • 引入了 VerticalText 可组合项 (I96509, b/502088091)

bug 修复

  • 阐明了旧版 API 级别上的 VerticalTextLayout 回退行为。(Ia7ccc、b/449184326)

此工件没有版本说明。

Text Vertical 版本 1.0

版本 1.0.0-alpha05

2026 年 4 月 22 日

发布了 androidx.text:text-vertical:1.0.0-alpha05 和 androidx.text:text-vertical-compose:1.0.0-alpha05。版本 1.0.0-alpha05 包含这些提交内容。

新功能

  • 添加了可组合函数,以支持垂直文本布局,这与 Google 的“Compose 优先”计划保持一致。

API 变更

  • 引入了 :text:text-vertical-compose 库工件。(I939e4)
  • 向 VerticalTextLayout 类添加了 lineCount 属性。(I93884、b/502088091)

bug 修复

  • 更新了 KDoc 文档,以提高清晰度和准确性。(I71c8f、b/449184326)

版本 1.0.0-alpha04

2026 年 4 月 8 日

发布了 androidx.text:text-vertical:1.0.0-alpha04。版本 1.0.0-alpha04 包含这些提交内容。

新功能

  • 重构了所有公共类,以便为一般用途提供更方便、更符合惯用法的 Kotlin API,同时保持强大的 Java 互操作性。

API 变更

  • 为 FontShearSpan 添加了默认的零参数构造函数,以实现 Java 兼容性 (I73065, b/493692287)。
  • 移除了 RubySpan 和 EmphasisSpan 中的 Parcelable 实现 (I49884, b/493693386)。
  • 重构了 EmphasisSpan,以提高兼容性 (I34c40, b/493693310)。
  • 重构了 AnnotationPosition 以改进 API Surface (I10dce, b/493693386)。
  • 将 TextOrientation 转换为枚举类,将 AnnotationPosition 重构为密封类,并移除了 RubySpan.Builder (Ib4a77, b/493693386)。
  • 添加了 AnnotationPosition 枚举并重构了 RubySpan 类(Ibfcff、b/493692426)。
  • 重构了 TextOrientation 以供一般使用,并改进了内部文本缩放扩展 (I82152, b/493692428)。

版本 1.0.0-alpha03

2026 年 3 月 25 日

发布了 androidx.text:text-vertical:1.0.0-alpha03。版本 1.0.0-alpha03 包含这些提交内容。

新功能

  • VerticalTextLayout 现在支持横向布局,以显示日语中的特殊 span,例如 Ruby 和 Emphasis (Boten)。

API 变更

版本 1.0.0-alpha02

2025 年 10 月 8 日

发布了 androidx.text:text-vertical:1.0.0-alpha02。版本 1.0.0-alpha02 包含这些提交内容。

新功能

  • 添加了 VerticalTextLayout#isVerticalTextLayoutSupported() 方法,用于检查竖排文本功能 (Ie2802, b/442608654)

API 变更

版本 1.0.0-alpha01

2025 年 8 月 27 日

发布了 androidx.text:text-vertical:1.0.0-alpha01。版本 1.0.0-alpha01 包含这些提交内容。

新功能

  • 新增了一个竖排文本库,利用 Android 16 中新增的 VERTICAL_TEXT_FLAG 标志,支持竖排文本布局(主要针对日语)。
  • 添加了 VerticalTextLayout,用于显示具有适当换行符、混合方向(例如,垂直行中的水平拉丁字符)和旁注标记的垂直文本。(8b3a10)
  • 添加了 FontShearSpan,用于在竖排文本中实现类似斜体的样式。(1ffd78)
  • 添加了 EmphasisRun,用于强调标记。(fe12d9)