ViewStructure

public abstract class ViewStructure
extends Object

java.lang.Object
   ↳ android.view.ViewStructure


ViewStructure is a container for storing additional per-view data generated by View.onProvideStructure and View.onProvideAutofillStructure.

To learn more about using Autofill in your app, read the Autofill Framework guides.

Summary

Nested classes

class ViewStructure.HtmlInfo

Simplified representation of the HTML properties of a node that represents an HTML element. 

Public constructors

ViewStructure()

Public methods

abstract int addChildCount(int num)

Add to this view's child count.

abstract void asyncCommit()

Call when done populating a ViewStructure returned by asyncNewChild(int).

abstract ViewStructure asyncNewChild(int index)

Like newChild(int), but allows the caller to asynchronously populate the returned child.

abstract AutofillId getAutofillId()

Gets the AutofillId associated with this node.

abstract int getChildCount()

Return the child count as set by setChildCount(int).

abstract Bundle getExtras()

Get extra data associated with this view structure; the returned Bundle is mutable, allowing you to view and modify its contents.

abstract CharSequence getHint()

Retrieve the last hint set by setHint(CharSequence).

abstract CharSequence getText()

Retrieve the last setText(java.lang.CharSequence).

abstract int getTextSelectionEnd()

Retrieve the last selection end set by setText(java.lang.CharSequence, int, int).

abstract int getTextSelectionStart()

Retrieve the last selection start set by setText(java.lang.CharSequence, int, int).

abstract boolean hasExtras()

Returns true if getExtras() has been used to create extra content.

abstract ViewStructure newChild(int index)

Create a new child ViewStructure in this view, putting into the list of children at index.

abstract ViewStructure.HtmlInfo.Builder newHtmlInfoBuilder(String tagName)

Creates a new HtmlInfo.Builder for the given HTML tag.

abstract void setAccessibilityFocused(boolean state)

Set the accessibility focused state of this view, as per View.isAccessibilityFocused().

abstract void setActivated(boolean state)

Set the activated state of this view, as per View.isActivated().

abstract void setAlpha(float alpha)

Set an alpha transformation that is applied to this view, as per View.getAlpha().

abstract void setAutofillHints(String[] hint)

Sets the a hints that helps the autofill service to select the appropriate data to fill the view.

abstract void setAutofillId(AutofillId id)

Sets the AutofillId associated with this node.

abstract void setAutofillId(AutofillId parentId, int virtualId)

Sets the AutofillId for this virtual node.

abstract void setAutofillOptions(CharSequence[] options)

Sets the options that can be used to autofill this node.

abstract void setAutofillType(int type)

Sets the View#getAutofillType() that can be used to autofill this node.

abstract void setAutofillValue(AutofillValue value)

Sets the AutofillValue representing the current value of this node.

abstract void setCheckable(boolean state)

Set the checkable state of this view, such as whether it implements the Checkable interface.

abstract void setChecked(boolean state)

Set the checked state of this view, such as Checkable.isChecked().

abstract void setChildCount(int num)

Set the number of children of this view, which defines the range of indices you can use with newChild(int) and asyncNewChild(int).

abstract void setClassName(String className)

Set the class name of the view, as per View.getAccessibilityClassName().

abstract void setClickable(boolean state)

Set the clickable state of this view, as per View.isClickable().

abstract void setContentDescription(CharSequence contentDescription)

Set the content description of the view, as per View.getContentDescription().

abstract void setContextClickable(boolean state)

Set the context clickable state of this view, as per View.isContextClickable().

abstract void setDataIsSensitive(boolean sensitive)

Sets whether the data on this node is sensitive; if it is, then its content (text, autofill value, etc..) is striped before calls to AutofillService.onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback).

abstract void setDimens(int left, int top, int scrollX, int scrollY, int width, int height)

Set the basic dimensions of this view.

abstract void setElevation(float elevation)

Set the visual elevation (shadow) of the view, as per View.getZ().

abstract void setEnabled(boolean state)

Set the enabled state of this view, as per View.isEnabled().

abstract void setFocusable(boolean state)

Set the focusable state of this view, as per View.isFocusable().

abstract void setFocused(boolean state)

Set the focused state of this view, as per View.isFocused().

abstract void setHint(CharSequence hint)

Set optional hint text associated with this view; this is for example the text that is shown by an EditText when it is empty to indicate to the user the kind of text to input.

void setHintIdEntry(String entryName)

Sets the identifier used to set the hint associated with this view.

abstract void setHtmlInfo(ViewStructure.HtmlInfo htmlInfo)

Sets the HTML properties of this node when it represents an HTML element.

abstract void setId(int id, String packageName, String typeName, String entryName)

Set the identifier for this view.

void setImportantForAutofill(int mode)

Sets the importantForAutofill mode of the view associated with this node.

abstract void setInputType(int inputType)

Sets the InputType bits of this node.

abstract void setLocaleList(LocaleList localeList)

Sets the the list of locales associated with this node.

abstract void setLongClickable(boolean state)

Set the long clickable state of this view, as per View.isLongClickable().

void setMaxTextEms(int maxEms)

Sets the maximum width in ems of the text associated with this view, when supported.

void setMaxTextLength(int maxLength)

Sets the maximum length of the text associated with this view, when supported.

void setMinTextEms(int minEms)

Sets the minimum width in ems of the text associated with this view, when supported.

abstract void setOpaque(boolean opaque)

Set the opaque state of this view, as per View.isOpaque().

void setReceiveContentMimeTypes(String[] mimeTypes)

Sets the MIME types accepted by this view.

abstract void setSelected(boolean state)

Set the selected state of this view, as per View.isSelected().

abstract void setText(CharSequence text)

Set the text that is associated with this view.

abstract void setText(CharSequence text, int selectionStart, int selectionEnd)

Like setText(java.lang.CharSequence) but with an active selection extending from selectionStart through selectionEnd.

void setTextIdEntry(String entryName)

Sets the identifier used to set the text associated with this view.

abstract void setTextLines(int[] charOffsets, int[] baselines)

Set line information for test that was previously supplied through setText(java.lang.CharSequence).

abstract void setTextStyle(float size, int fgColor, int bgColor, int style)

Explicitly set default global style information for text that was previously set with setText(CharSequence).

abstract void setTransformation(Matrix matrix)

Set the transformation matrix associated with this view, as per View.getMatrix(), or null if there is none.

abstract void setVisibility(int visibility)

Set the visibility state of this view, as per View.getVisibility().

abstract void setWebDomain(String domain)

Sets the Web domain represented by this node.

Inherited methods

Public constructors

ViewStructure

public ViewStructure ()

Public methods

addChildCount

Added in API level 23
public abstract int addChildCount (int num)

Add to this view's child count. This increases the current child count by num children beyond what was last set by setChildCount(int) or addChildCount(int). The index at which the new child starts in the child array is returned.

Parameters
num int: The number of new children to add.

Returns
int Returns the index in the child array at which the new children start.

asyncCommit

Added in API level 23
public abstract void asyncCommit ()

Call when done populating a ViewStructure returned by asyncNewChild(int).

asyncNewChild

Added in API level 23
public abstract ViewStructure asyncNewChild (int index)

Like newChild(int), but allows the caller to asynchronously populate the returned child. It can transfer the returned ViewStructure to another thread for it to build its content (and children etc). Once done, some thread must call asyncCommit() to tell the containing ViewStructure that the async population is done.

NOTE: you must pre-allocate space for the child first, by calling either addChildCount(int) or setChildCount(int).

Parameters
index int

Returns
ViewStructure Returns an fresh ViewStructure ready to be filled in.

getAutofillId

Added in API level 26
public abstract AutofillId getAutofillId ()

Gets the AutofillId associated with this node.

Returns
AutofillId This value may be null.

getChildCount

Added in API level 23
public abstract int getChildCount ()

Return the child count as set by setChildCount(int).

Returns
int

getExtras

Added in API level 23
public abstract Bundle getExtras ()

Get extra data associated with this view structure; the returned Bundle is mutable, allowing you to view and modify its contents. Keys placed in the Bundle should use an appropriate namespace prefix (such as com.google.MY_KEY) to avoid conflicts.

Returns
Bundle

getHint

Added in API level 23
public abstract CharSequence getHint ()

Retrieve the last hint set by setHint(CharSequence).

Returns
CharSequence

getText

Added in API level 23
public abstract CharSequence getText ()

Retrieve the last setText(java.lang.CharSequence).

Returns
CharSequence

getTextSelectionEnd

Added in API level 23
public abstract int getTextSelectionEnd ()

Retrieve the last selection end set by setText(java.lang.CharSequence, int, int).

Returns
int

getTextSelectionStart

Added in API level 23
public abstract int getTextSelectionStart ()

Retrieve the last selection start set by setText(java.lang.CharSequence, int, int).

Returns
int

hasExtras

Added in API level 23
public abstract boolean hasExtras ()

Returns true if getExtras() has been used to create extra content.

Returns
boolean

newChild

Added in API level 23
public abstract ViewStructure newChild (int index)

Create a new child ViewStructure in this view, putting into the list of children at index.

NOTE: you must pre-allocate space for the child first, by calling either addChildCount(int) or setChildCount(int).

Parameters
index int

Returns
ViewStructure Returns an fresh ViewStructure ready to be filled in.

newHtmlInfoBuilder

Added in API level 26
public abstract ViewStructure.HtmlInfo.Builder newHtmlInfoBuilder (String tagName)

Creates a new HtmlInfo.Builder for the given HTML tag.

Parameters
tagName String: name of the HTML tag. This value cannot be null.

Returns
ViewStructure.HtmlInfo.Builder a new builder.

setAccessibilityFocused

Added in API level 23
public abstract void setAccessibilityFocused (boolean state)

Set the accessibility focused state of this view, as per View.isAccessibilityFocused().

Parameters
state boolean

setActivated

Added in API level 23
public abstract void setActivated (boolean state)

Set the activated state of this view, as per View.isActivated().

Parameters
state boolean

setAlpha

Added in API level 23
public abstract void setAlpha (float alpha)

Set an alpha transformation that is applied to this view, as per View.getAlpha(). Value ranges from 0 (completely transparent) to 1 (completely opaque); the default is 1, which means no transformation.

Parameters
alpha float

setAutofillHints

Added in API level 26
public abstract void setAutofillHints (String[] hint)

Sets the a hints that helps the autofill service to select the appropriate data to fill the view.

Parameters
hint String: This value may be null.

setAutofillId

Added in API level 26
public abstract void setAutofillId (AutofillId id)

Sets the AutofillId associated with this node.

Parameters
id AutofillId: This value cannot be null.

setAutofillId

Added in API level 26
public abstract void setAutofillId (AutofillId parentId, 
                int virtualId)

Sets the AutofillId for this virtual node.

Parameters
parentId AutofillId: id of the parent node. This value cannot be null.

virtualId int: an opaque ID to the Android System; it's the same id used on View#autofill(android.util.SparseArray).

setAutofillOptions

Added in API level 26
public abstract void setAutofillOptions (CharSequence[] options)

Sets the options that can be used to autofill this node.

Typically used by nodes whose View#getAutofillType() is a list to indicate the meaning of each possible value in the list.

Parameters
options CharSequence

setAutofillType

Added in API level 26
public abstract void setAutofillType (int type)

Sets the View#getAutofillType() that can be used to autofill this node.

Parameters
type int: Value is View.AUTOFILL_TYPE_NONE, View.AUTOFILL_TYPE_TEXT, View.AUTOFILL_TYPE_TOGGLE, View.AUTOFILL_TYPE_LIST, or View.AUTOFILL_TYPE_DATE

setAutofillValue

Added in API level 26
public abstract void setAutofillValue (AutofillValue value)

Sets the AutofillValue representing the current value of this node.

Parameters
value AutofillValue

setCheckable

Added in API level 23
public abstract void setCheckable (boolean state)

Set the checkable state of this view, such as whether it implements the Checkable interface.

Parameters
state boolean

setChecked

Added in API level 23
public abstract void setChecked (boolean state)

Set the checked state of this view, such as Checkable.isChecked().

Parameters
state boolean

setChildCount

Added in API level 23
public abstract void setChildCount (int num)

Set the number of children of this view, which defines the range of indices you can use with newChild(int) and asyncNewChild(int). Calling this method again resets all of the child state of the view, removing any children that had previously been added.

Parameters
num int

setClassName

Added in API level 23
public abstract void setClassName (String className)

Set the class name of the view, as per View.getAccessibilityClassName().

Parameters
className String

setClickable

Added in API level 23
public abstract void setClickable (boolean state)

Set the clickable state of this view, as per View.isClickable().

Parameters
state boolean

setContentDescription

Added in API level 23
public abstract void setContentDescription (CharSequence contentDescription)

Set the content description of the view, as per View.getContentDescription().

Parameters
contentDescription CharSequence

setContextClickable

Added in API level 23
public abstract void setContextClickable (boolean state)

Set the context clickable state of this view, as per View.isContextClickable().

Parameters
state boolean

setDataIsSensitive

Added in API level 26
public abstract void setDataIsSensitive (boolean sensitive)

Sets whether the data on this node is sensitive; if it is, then its content (text, autofill value, etc..) is striped before calls to AutofillService.onFillRequest(android.service.autofill.FillRequest, android.os.CancellationSignal, android.service.autofill.FillCallback).

By default, all nodes are assumed to be sensitive, and only nodes that does not have PII (Personally Identifiable Information - sensitive data such as email addresses, credit card numbers, passwords, etc...) should be marked as non-sensitive; a good rule of thumb is to mark as non-sensitive nodes whose value were statically set from resources.

Notice that the content of even sensitive nodes are sent to the service (through the AutofillService.onSaveRequest(android.service.autofill.SaveRequest, android.service.autofill.SaveCallback) call) when the user consented to save thedata, so it is important to set the content of sensitive nodes as well, but mark them as sensitive.

Should only be set when the node is used for autofill purposes - it will be ignored when used for Assist.

Parameters
sensitive boolean

setDimens

Added in API level 23
public abstract void setDimens (int left, 
                int top, 
                int scrollX, 
                int scrollY, 
                int width, 
                int height)

Set the basic dimensions of this view.

Parameters
left int: The view's left position, in pixels relative to its parent's left edge.

top int: The view's top position, in pixels relative to its parent's top edge.

scrollX int: How much the view's x coordinate space has been scrolled, in pixels.

scrollY int: How much the view's y coordinate space has been scrolled, in pixels.

width int: The view's visible width, in pixels. This is the width visible on screen, not the total data width of a scrollable view.

height int: The view's visible height, in pixels. This is the height visible on screen, not the total data height of a scrollable view.

setElevation

Added in API level 23
public abstract void setElevation (float elevation)

Set the visual elevation (shadow) of the view, as per View.getZ(). Note this is not related to the physical Z-ordering of this view relative to its other siblings (that is how they overlap when drawing), it is only the visual representation for shadowing.

Parameters
elevation float

setEnabled

Added in API level 23
public abstract void setEnabled (boolean state)

Set the enabled state of this view, as per View.isEnabled().

Parameters
state boolean

setFocusable

Added in API level 23
public abstract void setFocusable (boolean state)

Set the focusable state of this view, as per View.isFocusable().

Parameters
state boolean

setFocused

Added in API level 23
public abstract void setFocused (boolean state)

Set the focused state of this view, as per View.isFocused().

Parameters
state boolean

setHint

Added in API level 23
public abstract void setHint (CharSequence hint)

Set optional hint text associated with this view; this is for example the text that is shown by an EditText when it is empty to indicate to the user the kind of text to input.

Parameters
hint CharSequence

setHintIdEntry

Added in API level 30
public void setHintIdEntry (String entryName)

Sets the identifier used to set the hint associated with this view.

Used as metadata for fingerprinting view nodes/structures.

Should only be set when the node is used for autofill purposes - it will be ignored when used for Assist.

Parameters
entryName String: This value cannot be null.

setHtmlInfo

Added in API level 26
public abstract void setHtmlInfo (ViewStructure.HtmlInfo htmlInfo)

Sets the HTML properties of this node when it represents an HTML element.

Should only be set when the node is used for autofill purposes - it will be ignored when used for assist.

Parameters
htmlInfo ViewStructure.HtmlInfo: HTML properties. This value cannot be null.

setId

Added in API level 23
public abstract void setId (int id, 
                String packageName, 
                String typeName, 
                String entryName)

Set the identifier for this view.

Parameters
id int: The view's identifier, as per View.getId().

packageName String: The package name of the view's identifier, or null if there is none.

typeName String: The type name of the view's identifier, or null if there is none.

entryName String: The entry name of the view's identifier, or null if there is none.

setImportantForAutofill

Added in API level 28
public void setImportantForAutofill (int mode)

Sets the importantForAutofill mode of the view associated with this node.

Parameters
mode int: Value is View.IMPORTANT_FOR_AUTOFILL_AUTO, View.IMPORTANT_FOR_AUTOFILL_YES, View.IMPORTANT_FOR_AUTOFILL_NO, View.IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, or View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS

setInputType

Added in API level 26
public abstract void setInputType (int inputType)

Sets the InputType bits of this node.

Parameters
inputType int: inputType bits as defined by InputType.

setLocaleList

Added in API level 26
public abstract void setLocaleList (LocaleList localeList)

Sets the the list of locales associated with this node.

Parameters
localeList LocaleList

setLongClickable

Added in API level 23
public abstract void setLongClickable (boolean state)

Set the long clickable state of this view, as per View.isLongClickable().

Parameters
state boolean

setMaxTextEms

Added in API level 28
public void setMaxTextEms (int maxEms)

Sets the maximum width in ems of the text associated with this view, when supported.

Should only be set when the node is used for autofill purposes - it will be ignored when used for Assist.

Parameters
maxEms int

setMaxTextLength

Added in API level 28
public void setMaxTextLength (int maxLength)

Sets the maximum length of the text associated with this view, when supported.

Should only be set when the node is used for autofill purposes - it will be ignored when used for Assist.

Parameters
maxLength int

setMinTextEms

Added in API level 28
public void setMinTextEms (int minEms)

Sets the minimum width in ems of the text associated with this view, when supported.

Should only be set when the node is used for autofill purposes - it will be ignored when used for Assist.

Parameters
minEms int

setOpaque

Added in API level 26
public abstract void setOpaque (boolean opaque)

Set the opaque state of this view, as per View.isOpaque().

Parameters
opaque boolean

setReceiveContentMimeTypes

Added in API level 31
public void setReceiveContentMimeTypes (String[] mimeTypes)

Sets the MIME types accepted by this view. See View#getReceiveContentMimeTypes().

Should only be set when the node is used for Autofill or Content Capture purposes - it will be ignored when used for Assist.

Parameters
mimeTypes String: This value may be null.

setSelected

Added in API level 23
public abstract void setSelected (boolean state)

Set the selected state of this view, as per View.isSelected().

Parameters
state boolean

setText

Added in API level 23
public abstract void setText (CharSequence text)

Set the text that is associated with this view. There is no selection associated with the text. The text may have style spans to supply additional display and semantic information.

Parameters
text CharSequence

setText

Added in API level 23
public abstract void setText (CharSequence text, 
                int selectionStart, 
                int selectionEnd)

Like setText(java.lang.CharSequence) but with an active selection extending from selectionStart through selectionEnd.

Parameters
text CharSequence

selectionStart int

selectionEnd int

setTextIdEntry

Added in API level 28
public void setTextIdEntry (String entryName)

Sets the identifier used to set the text associated with this view.

Should only be set when the node is used for autofill purposes - it will be ignored when used for Assist.

Parameters
entryName String: This value cannot be null.

setTextLines

Added in API level 23
public abstract void setTextLines (int[] charOffsets, 
                int[] baselines)

Set line information for test that was previously supplied through setText(java.lang.CharSequence). This provides the line breaking of the text as it is shown on screen. This function takes ownership of the provided arrays; you should not make further modification to them.

Parameters
charOffsets int: The offset in to setText(CharSequence) where a line starts.

baselines int: The baseline where the line is drawn on screen.

setTextStyle

Added in API level 23
public abstract void setTextStyle (float size, 
                int fgColor, 
                int bgColor, 
                int style)

Explicitly set default global style information for text that was previously set with setText(CharSequence).

Parameters
size float: The size, in pixels, of the text.

fgColor int: The foreground color, packed as 0xAARRGGBB.

bgColor int: The background color, packed as 0xAARRGGBB.

style int: Style flags, as defined by AssistStructure.ViewNode.

setTransformation

Added in API level 23
public abstract void setTransformation (Matrix matrix)

Set the transformation matrix associated with this view, as per View.getMatrix(), or null if there is none.

Parameters
matrix Matrix

setVisibility

Added in API level 23
public abstract void setVisibility (int visibility)

Set the visibility state of this view, as per View.getVisibility().

Parameters
visibility int

setWebDomain

Added in API level 26
public abstract void setWebDomain (String domain)

Sets the Web domain represented by this node.

Typically used when the view is a container for an HTML document.

Parameters
domain String: RFC 2396-compliant URI representing the domain. This value may be null.