Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This guide lists all of the currently supported Android layout diagnostic analyzers.
Accessibility
The following analyzers help to improve accessibility support:
ID | Title | Severity | Description |
---|---|---|---|
ContentDescription | Image without contentDescription |
Warning | Missing contentDescription attribute on image |
Correctness
The following analyzers help fix correctness issues in a layout:
ID | Title | Severity | Description | Help |
---|---|---|---|---|
AdapterViewChildren | AdapterView with children | Warning | AdapterViews cannot have children in XML | Link |
MissingId | Fragments should specify an id or tag |
Warning | This <fragment> tag should specify an id or a tag to preserve state across activity restarts |
Link |
NestedScrollingVertical | Nested vertically scrolling elements | Warning | Nested scrolling widgets | |
NestedScrollingHorizontal | Nested horizontally scrolling elements | Warning | Nested scrolling widgets | |
ScrollViewSize | ScrollView children with wrong fill_parent/match_parent sizes | Warning | ScrollView children with wrong fill_parent/match_parent sizes | |
ScrollViewCount | ScrollViews can have only one child | Warning | A scroll view can have only one child | |
MissingAndroidNamespace | Missing Android namespace on attribute | Error | Missing Android XML namespace; your attribute will be interpreted as a custom attribute | |
DuplicateIDs | Duplicate IDs | Error | Duplicate ids within a single layout | |
IncludeLayoutParamsMissingWidthAndHeight | Missing both width and height | Error | Ignored layout params on include | Link |
IncludeLayoutParamsMissingWidth | Missing width | Error | Ignored layout params on include | Link |
IncludeLayoutParamsMissingHeight | Missing height | Error | Ignored layout params on include | Link |
Orientation | Missing explicit orientation | Error | Missing explicit orientation | |
Suspicious0dp | Suspicious 0dp dimension | Error | Suspicious 0dp dimension | |
RequiredSizeWidth | Missing width attribute | Error | Missing attribute: layout_width | |
RequiredSizeHeight | Missing height attribute | Error | Missing attribute: layout_height | |
WebViewLayout | WebViews in wrap_content parents | Error | ||
WrongCase | Wrong case for view tag | Error | Wrong case for view tag | Link |
Design
The following analyzers help to improve how you join layout files:
ID | Title | Severity | Description |
---|---|---|---|
HardcodedColor | Hardcoded color | Info | Hardcoded color often leads to inconsistency |
HardcodedSize | Hardcoded size | Info | Hardcoded size often leads to inconsistency |
HardcodedText | Hardcoded text | Warning | Hardcoded text |
UnresolvedResource | Unresolved resource URL | Warning | This resource URL cannot be resolved |
XmlErrors | XML syntax error | Error | XML syntax error |
Performance
The following analyzers help improve the performance of your layout:
ID | Title | Severity | Description |
---|---|---|---|
NestedWeights | Nested layout weights | Warning | Nested weights are bad for performance |
TooManyViews | Layout has too many views | Warning | Layout has too many views |
TooDeepLayout | Layout hierarchy is too deep | Warning | Layout hierarchy is too deep |
UselessParent | Useless parent layout | Warning | Useless parent layout |
UselessLeaf | Useless leaf layout | Warning | This %1$s view is useless (no children, no background , no id , no style ) |
Usability
The following analyzers help improve layout usability for your customers:
ID | Title | Severity | Description |
---|---|---|---|
NegativeMargin | Negative Margins | Warning | Negative Margins |
MissingInputType | EditText with no inputType | Warning | No input type specified |
InputTypePhone | EditText appears to be a phone number | Warning | The view name suggests this is a phone number, but it does not include phone in the inputType |
InputTypeNumber | EditText appears to be a number | Warning | The view name suggests this is a number, but it does not include a numeric inputType (such as numberDecimal ) |
InputTypePassword | EditText appears to be a password | Warning | The view name suggests this is a password, but it does not include password in the inputType (such as textVisiblePassword ) |
InputTypePIN | EditText appears to be a PIN | Warning | The view name suggests this is a password (PIN), but it does not include numberPassword in the inputType |
InputTypeEmail | EditText appears to be an email | Warning | The view name suggests this is an e-mail address, but it does not include email in the inputType (such as textEmailAddress ) |
InputTypeURI | EditText appears to be a URI | Warning | The view name suggests this is a URI, but it does not include textUri in the inputType |
InputTypeDate | EditText appears to be a date | Warning | The view name suggests this is a date, but it does not include date in the inputType (such as datetime ) |