本指南列出了当前支持的所有 Android 布局诊断分析器。
辅助功能
以下分析器有助于改进辅助功能支持:
| ID | 标题 | Severity | 说明 |
|---|---|---|---|
| ContentDescription | 无 contentDescription 的图像 |
警告 | 图像上缺少 contentDescription 属性 |
正确性
以下分析器有助于修复布局中的正确性问题:
| ID | 标题 | Severity | 说明 | 帮助 |
|---|---|---|---|---|
| AdapterViewChildren | 有子级的 AdapterView | 警告 | AdapterView 在 XML 中不能有子项 | 链接。 |
| MissingId | 片段应指定 id 或 tag |
警告 | 此 <fragment> 标记应指定 id 或 tag 以保留活动重启中的状态 |
链接。 |
| NestedScrollingVertical | 嵌套的垂直滚动元素 | 警告 | 嵌套的滚动小组件 | |
| NestedScrollingHorizontal | 嵌套的水平滚动元素 | 警告 | 嵌套的滚动小组件 | |
| ScrollViewSize | 具有错误 fill_parent/match_parent 大小的 ScrollView 子级 | 警告 | 具有错误 fill_parent/match_parent 大小的 ScrollView 子级 | |
| ScrollViewCount | ScrollViews 只能具有一个子级 | 警告 | 滚动视图只能有一个子视图 | |
| MissingAndroidNamespace | 属性上缺少 Android 命名空间 | 错误 | 缺少 Android XML 命名空间;将按自定义属性解释属性 | |
| DuplicateIDs | 重复的 ID | 错误 | 在单个布局中存在重复的 ID | |
| IncludeLayoutParamsMissingWidthAndHeight | 缺少宽度和高度 | 错误 | 已忽略包含中的布局参数 | 链接。 |
| IncludeLayoutParamsMissingWidth | 缺少宽度 | 错误 | 已忽略包含中的布局参数 | 链接。 |
| IncludeLayoutParamsMissingHeight | 缺少高度 | 错误 | 已忽略包含中的布局参数 | 链接。 |
| 方向 | 缺少显式方向 | 错误 | 缺少显式方向 | |
| Suspicious0dp | 可疑的 0dp 维度 | 错误 | 可疑的 0dp 维度 | |
| RequiredSizeWidth | 缺少宽度属性 | 错误 | 缺少属性: layout_width | |
| RequiredSizeHeight | 缺少高度属性 | 错误 | 缺少属性: layout_height | |
| WebViewLayout | wrap_content 父级中的 WebView | 错误 | ||
| WrongCase | 视图标记的大小写错误 | 错误 | 视图标记的大小写错误 | 链接。 |
设计
以下分析器有助于改进加入布局文件的方式:
| ID | 标题 | Severity | 说明 |
|---|---|---|---|
| HardcodedColor | 硬编码颜色 | 信息 | 硬编码颜色常导致不一致 |
| HardcodedSize | 硬编码大小 | 信息 | 硬编码的大小常导致不一致 |
| HardcodedText | 硬编码文本 | 警告 | 硬编码文本 |
| UnresolvedResource | 未解析的资源 URL | 警告 | 无法解析此资源 URL |
| XmlErrors | XML 语法错误 | 错误 | XML 语法错误 |
性能
以下分析器有助于提高布局的性能:
| ID | 标题 | Severity | 说明 |
|---|---|---|---|
| NestedWeights | 嵌套的布局权重 | 警告 | 嵌套的小组件将影响性能 |
| TooManyViews | 布局具有太多视图 | 警告 | 布局具有太多视图 |
| TooDeepLayout | 布局层次结构太深 | 警告 | 布局层次结构太深 |
| UselessParent | 无用的父布局 | 警告 | 无用的父布局 |
| UselessLeaf | 无用的叶式布局 | 警告 | 此 %1$s 视图是无用的(无子级、background、id 和 style) |
可用性
以下分析器有助于改善客户的布局可用性:
| ID | 标题 | Severity | 说明 |
|---|---|---|---|
| NegativeMargin | 负边距 | 警告 | 负边距 |
| MissingInputType | 不带 inputType 的 EditText | 警告 | 未指定输入类型 |
| InputTypePhone | EditText 似乎是电话号码 | 警告 | 视图名称表明这是电话号码,但它在 inputType 中不包含 phone |
| InputTypeNumber | EditText 似乎是数字 | 警告 | 视图名称表明这是数字,但它不包含数值型 inputType (如 numberDecimal) |
| InputTypePassword | EditText 似乎是密码 | 警告 | 视图名称表明这是密码,但它在 inputType 中不包含 password(例如 textVisiblePassword) |
| InputTypePIN | EditText 似乎是 PIN | 警告 | 视图名称表明这是密码 (PIN),但它在 inputType 中不包含 numberPassword |
| InputTypeEmail | EditText 似乎是电子邮件 | 警告 | 视图名称表明这是电子邮件地址,但它在 inputType 中不包含 email(例如 textEmailAddress) |
| InputTypeURI | EditText 似乎是 URI | 警告 | 视图名称表明这是 URI,但它在 inputType 中不包含 textUri |
| InputTypeDate | EditText 似乎是日期 | 警告 | 视图名称表明这是日期,但它在 inputType 中不包含 date(例如 datetime) |