---
name: ui-devsimple-viewtheme
description: >-
为布局 XML 中的控件默认补全 DevSimple(lib/DevSimple)的 ViewTheme 样式引用:
按控件继承链匹配 ViewTheme.<类名>,ImageView/AppCompatImageView 使用
ViewTheme.ImageView.FIT_XY,无匹配则用 ViewTheme.View。工作区内优先 Read
lib/DevSimple;根样式清单见同目录 references/reference.md。在编写或批量整理 layout XML、
引入 ViewTheme、迁移旧布局、或用户提到 DevSimple/ViewTheme 时使用。
---
# DevSimple 布局 XML 默认 ViewTheme 样式
## 模块路径(本地优先)
| 符号 | 当前值 |
|------|--------|
| `DEVSIMPLE_ROOT` | `lib/DevSimple` |
| `DEVSIMPLE_VALUES` | `{DEVSIMPLE_ROOT}/src/main/res/values` |
存在 `{DEVSIMPLE_ROOT}` 时 **Read 本地 XML**,勿用 WebFetch 代替。根样式全表、继承链、资源文件索引与 grep 维护步骤 → [references/reference.md](references/reference.md)。
## 何时应用
- 新建或编辑 `res/layout/**/*.xml` 中的控件,需要统一默认宽高与主题习惯时。
- 用户要求为 View 补上 DevSimple / `ViewTheme` 的 `style` 时。
## 前置假设
- 模块已依赖 DevSimple,R 中可解析 `@style/ViewTheme.*`。
- 样式名是否存在:以 [references/reference.md §根样式表](references/reference.md#根样式表控件向可直接作默认-style) 为准;若存疑或久未同步,在 `{DEVSIMPLE_VALUES}` **grep** `name="ViewTheme.` 后更新 reference(见 reference §扫描与更新)。
## 核心规则(按顺序执行)
1. **已有 `style`/`android:theme`**:不要覆盖用户显式配置;除非用户明确要求替换。
2. **解析控件「语义类名」**:
- XML 为完整类名时取**简单类名**(如 `RecyclerView`)。
- AppCompat / Material:沿继承向平台 Widget 回退,取**第一个在 reference 根样式表中出现的简单类名**。
例:`AppCompatEditText` → `EditText`;`MaterialButton` → `Button`。
3. **ImageView 特例**:`ImageView` / `AppCompatImageView` 一律
`style="@style/ViewTheme.ImageView.FIT_XY"`(不用 `ViewTheme.ImageView` 作默认)。
4. **匹配根样式**:若 reference 根样式表存在 `ViewTheme.<语义类名>`,则
`style="@style/ViewTheme.<语义类名>"`(ImageView 已按上一步处理)。
5. **ViewPager2**:无 `ViewTheme.ViewPager2`;使用 `style="@style/ViewTheme.ViewPager"`。
6. **无匹配**:`style="@style/ViewTheme.View"`。
7. **写法**:`style` 放在标签属性前列(与项目现有 XML 风格一致)。
继承链与常见标签对照 → [references/reference.md §继承链速查](references/reference.md#继承链速查xml-标签--语义类名)。需要 Match / Gravity / 子样式时 → [references/reference.md §子样式命名规律](references/reference.md#子样式命名规律按需拼接)。
## 示例
```xml
```
无库内主题的控件:
```xml
```
## 执行清单
- [ ] 已 Read [references/reference.md](references/reference.md) 根样式表(或已 grep `{DEVSIMPLE_VALUES}` 核对)。
- [ ] 未覆盖用户已有 `style`(除非明确要求)。
- [ ] ImageView / ViewPager2 特例已套用。
- [ ] DevSimple 有新增 `ViewTheme` 时,按 reference §扫描与更新 同步 reference,勿只改 SKILL。