Appearance
RichUI 字段字典
这一页只记录 richui JSON 里当前能明确写清的字段:
- 字段类型
- 值格式
- 已确认枚举项
- 典型示例值
- 当前证据等级
1. 顶层对象
1.1 顶层字段表
| 字段 | 类型 | 值格式 | 已确认枚举/示例 | 当前状态 | 说明 |
|---|---|---|---|---|---|
version | number | 整数 | 1、2 | 已确认 | 模板版本 |
templateId | string | 普通字符串 | com.tencent.public.game.video | 已确认 | 模板 ID |
busId | string | 普通字符串 | demo | 已确认存在 | 业务含义未完全闭环 |
summary | string | 普通字符串 | 无稳定模板样例 | 已确认存在 | 写法未沉淀 |
uuid | string | 普通字符串 | 无稳定模板样例 | 已确认存在 | 实例唯一 ID |
layout | object | 单个布局树对象 | 见下文 | 已确认 | 根布局树 |
attributes | object | 根属性对象 | 见下文 | 已确认 | 根属性树 |
extra | object | 普通对象 | { "dynamicParams": [...] } | 已确认 | 扩展元信息 |
1.2 extra
当前已确认字段:
| 字段 | 类型 | 值格式 | 示例 | 状态 |
|---|---|---|---|---|
dynamicParams | array<string> | 字符串数组 | ["subscribeTag"] | 已确认 |
2. layout 字段字典
layout 是一棵树。每个节点至少是一个对象,子节点放在 layout 数组里。
2.1 布局节点基础字段
| 字段 | 类型 | 值格式 | 已确认枚举/示例 | 当前状态 | 说明 |
|---|---|---|---|---|---|
viewId | string | 普通字符串 | app、header、title | 已确认 | 节点 ID |
viewType | string | 普通字符串 | text、image | 已确认 | 原子视图类型 |
width | number | 整数或小数 | -1、-2、24、65 | 已确认 | -1/-2 在模板里反复出现 |
height | number | 整数或小数 | -1、-2、0.5、24、50 | 已确认 | 分割线可用 0.5 |
layout | array<object> | 子节点数组 | [] | 已确认 | 子布局 |
direction | string | 枚举字符串 | horizontal、vertical | 已确认 | 容器方向 |
gravity | string | 枚举或组合字符串 | centerVertical、`right | centerVertical、center、bottom、right` | 已确认 |
ratio | number | 数字 | 1.8、7 | 已确认 | 宽高比 |
2.2 width / height 的当前解释
当前模板里已经稳定出现:
| 值 | 当前解释 | 状态 |
|---|---|---|
-1 | 撑满可用空间 | 已确认 |
-2 | 包内容 | 已确认 |
| 正数 | 固定尺寸 | 已确认 |
0.5 | 细分割线高度 | 已确认 |
2.3 direction 枚举
当前只拿到这两个模板实锤值:
| 值 | 说明 | 证据状态 |
|---|---|---|
horizontal | 横向排列 | 已确认 |
vertical | 纵向排列 | 已确认 |
当前不要额外写其它值,除非后续再拿到模板或实现证据。
2.4 gravity 枚举
当前在模板里已经直接出现的值:
| 值 | 说明 | 证据状态 |
|---|---|---|
centerVertical | 垂直居中 | 已确认 |
| `right | centerVertical` | 右对齐 + 垂直居中 |
center | 居中 | 已确认 |
bottom | 底部对齐 | 已确认 |
right | 右对齐 | 已确认 |
当前没有拿到模板实锤的值:
leftleft|centerVerticaltop
这些值即使实测可能可用,当前也不写成“已确认枚举”。
2.5 viewType 枚举
当前模板里直接确认的项只有:
| 值 | 说明 | 状态 |
|---|---|---|
text | 文本视图 | 已确认 |
image | 图片视图 | 已确认 |
当前还不能写成已确认模板项的:
progresscircularProgress- 其他自定义 viewType
2.6 间距字段
| 字段 | 类型 | 值格式 | 示例 | 状态 |
|---|---|---|---|---|
marginLeft | number | 数字 | 16、12、8 | 已确认 |
marginRight | number | 数字 | 16、12、8 | 已确认 |
marginTop | number | 数字 | 12、24、4 | 已确认 |
marginBottom | number | 数字 | 12、16 | 已确认 |
3. attributes 字段字典
attributes 当前是“按 viewId 找节点,再给节点挂属性”的结构。
3.1 属性节点基础字段
| 字段 | 类型 | 值格式 | 已确认枚举/示例 | 当前状态 | 说明 |
|---|---|---|---|---|---|
viewId | string | 普通字符串 | app、header | 已确认 | 指向哪个布局节点 |
attributes | array<object> | 子属性数组 | [] | 已确认 | 递归子属性 |
radius | number | 数字 | 10、12 | 已确认 | 圆角 |
backgroundColor | string | 颜色字符串或主题 token | #FFFFFF、bubble_guest | 已确认 | 背景色 |
clickable | boolean | true/false | true | 已确认 | 是否可点击 |
schema | string | URL、协议、变量引用 | https://...、mqqapi://...、$$jumpUrl | 已确认 | 点击跳转 |
3.2 颜色类字段
backgroundColor
当前已确认值格式:
| 格式 | 示例 | 状态 |
|---|---|---|
| 十六进制颜色字符串 | #FFFFFF | 已确认 |
| 主题 token 字符串 | bubble_guest | 已确认 |
当前不要默认写成:
- 数字颜色值
- 颜色对象
除非后续拿到模板或实现证据。
textColor
当前已确认值格式:
| 格式 | 示例 | 状态 |
|---|---|---|
| 十六进制颜色字符串 | #111827、#FFFFFF | 已确认 |
bgGradient
当前字段结构已经明确:[1]
| 字段 | 类型 | 值格式 | 示例 | 状态 |
|---|---|---|---|---|
startColor | string | 颜色字符串 | #18234A | 已确认数据结构 |
endColor | string | 颜色字符串 | #4B1E8A | 已确认数据结构 |
vertical | boolean | true/false | false | 已确认数据结构 |
当前边界:
- 渐变能力真实存在
bgGradient这组键当前已实测可用- 但还没拿到官方模板字符串级样例
StateColor
底层还存在:StateColor(normalColor, pressedColor, disabledColor)。[2]
当前字段结构:
| 字段 | 类型 | 值格式 | 状态 |
|---|---|---|---|
normalColor | string | 颜色字符串 | 已确认数据结构 |
pressedColor | string | 颜色字符串 | 已确认数据结构 |
disabledColor | string | 颜色字符串 | 已确认数据结构 |
当前边界:
- 底层数据结构存在
- JSON 层稳定写法未闭环
3.3 文本属性字段
| 字段 | 类型 | 值格式 | 示例 | 状态 |
|---|---|---|---|---|
text | string | 普通字符串 | Hello | 已确认 |
textSize | number | 数字 | 14 | 已确认 |
textColor | string | 颜色字符串 | #111827 | 已确认 |
maxLine | number | 整数 | 模板出现过该写法 | 已确认模板写法 |
fontBold | 未明确 | 未明确 | 模板层曾观察到 | 未完整探索 |
maxLine / maxLines
当前要分开写:
| 字段 | 当前状态 | 说明 |
|---|---|---|
maxLine | 已确认模板出现 | 模板层写法 |
maxLines | 已确认数据模型存在 | 来自 QuoteSettings,不是当前模板实锤写法 |
lineBreakMode
底层枚举已明确:[3]
| 值 | 说明 | 状态 |
|---|---|---|
wordWrapping | 单词换行 | 已确认枚举 |
charWrapping | 字符换行 | 已确认枚举 |
clipping | 裁切 | 已确认枚举 |
truncatingHead | 头部截断 | 已确认枚举 |
truncatingTail | 尾部截断 | 已确认枚举 |
truncatingMiddle | 中间截断 | 已确认枚举 |
当前边界:
- 这些是底层枚举值
- 但还没拿到模板字符串里直接写它们的样例
3.4 图片属性字段
| 字段 | 类型 | 值格式 | 示例 | 状态 |
|---|---|---|---|---|
src | string | URL 或变量引用 | https://...、$$jumpUrl 同风格引用 | 已确认常用 |
failedSrc | string | 字符串 | 未稳定样例 | 未完整探索 |
radius | number | 数字 | 10 | 已确认 |
底层图片接口能力:[4]
| 能力 | 当前状态 | 说明 |
|---|---|---|
ScaleType | 已确认底层存在 | JSON 键名未闭环 |
contentMode | 未闭环 | 仅有经验线索,没有模板级实锤 |
4. 当前不建议写成“已确认”的字段
这些字段或值当前没有足够模板/实现证据,不应在正文里写成稳定能力:
progress作为线性进度条viewTypecircularProgress作为稳定 JSON 键名contentMode的具体枚举值borderRadius作为稳定字段fontBold的具体值域
5. 关键源码
BgGradient(startColor, endColor, vertical)见../../apk_jadx/sources/com/tencent/android/androidbypass/richui/viewdata/c.java:24-35,84-91。 ↩︎StateColor(normalColor, pressedColor, disabledColor)见../../apk_jadx/sources/com/tencent/android/androidbypass/richui/viewdata/n.java:25-36,77-84。 ↩︎lineBreakMode底层枚举见../../apk_jadx/sources/rz1/m.java:8-27,QuoteSettings输出lineBreakMode键见../../apk_jadx/sources/rz1/y.java:152-159。 ↩︎图片接口见
../../apk_jadx/sources/com/tencent/android/androidbypass/richui/view/e.java:49-53。 ↩︎