View
public
class
View
extends Object
implements
AccessibilityEventSource,
Drawable.Callback,
KeyEvent.Callback
java.lang.Object | |
↳ | android.view.View |
This class represents the basic building block for user interface components. A View
occupies a rectangular area on the screen and is responsible for drawing and
event handling. View is the base class for widgets, which are
used to create interactive UI components (buttons, text fields, etc.). The
ViewGroup
subclass is the base class for layouts, which
are invisible containers that hold other Views (or other ViewGroups) and define
their layout properties.
Developer Guides
For information about using this class to develop your application's user interface, read the User Interface developer guide.
Using Views
All of the views in a window are arranged in a single tree. You can add views either from code or by specifying a tree of views in one or more XML layout files. There are many specialized subclasses of views that act as controls or are capable of displaying text, images, or other content.
Once you have created a tree of views, there are typically a few types of common operations you may wish to perform:
- Set properties: for example setting the text of a
TextView
. The available properties and the methods that set them will vary among the different subclasses of views. Note that properties that are known at build time can be set in the XML layout files. - Set focus: The framework will handle moving focus in
response to user input. To force focus to a specific view, call
requestFocus()
. - Set up listeners: Views allow clients to set listeners
that will be notified when something interesting happens to the view. For
example, all views will let you set a listener to be notified when the view
gains or loses focus. You can register such a listener using
setOnFocusChangeListener(android.view.View.OnFocusChangeListener)
. Other view subclasses offer more specialized listeners. For example, a Button exposes a listener to notify clients when the button is clicked. - Set visibility: You can hide or show views using
setVisibility(int)
.
Note: The Android framework is responsible for measuring, laying out and
drawing views. You should not call methods that perform these actions on
views yourself unless you are actually implementing a
ViewGroup
.
Implementing a Custom View
To implement a custom view, you will usually begin by providing overrides for
some of the standard methods that the framework calls on all views. You do
not need to override all of these methods. In fact, you can start by just
overriding onDraw(android.graphics.Canvas)
.
Category | Methods | Description |
---|---|---|
Creation | Constructors | There is a form of the constructor that are called when the view is created from code and a form that is called when the view is inflated from a layout file. The second form should parse and apply any attributes defined in the layout file. |
|
Called after a view and all of its children has been inflated from XML. | |
Layout |
|
Called to determine the size requirements for this view and all of its children. |
|
Called when this view should assign a size and position to all of its children. | |
|
Called when the size of this view has changed. | |
Drawing |
|
Called when the view should render its content. |
Event processing |
|
Called when a new hardware key event occurs. |
|
Called when a hardware key up event occurs. | |
|
Called when a trackball motion event occurs. | |
|
Called when a motion event occurs with pointers down on the view. | |
|
Called when a generic motion event occurs. | |
|
Called when a hover motion event occurs. | |
Focus |
|
Called when the view gains or loses focus. |
|
Called when the window containing the view gains or loses focus. | |
Attaching |
|
Called when the view is attached to a window. |
|
Called when the view is detached from its window. | |
|
Called when the visibility of the window containing the view has changed. |
IDs
Views may have an integer id associated with them. These ids are typically assigned in the layout XML files, and are used to find specific views within the view tree. A common pattern is to:- Define a Button in the layout file and assign it a unique ID.
<Button android:id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/my_button_text"/>
- From the onCreate method of an Activity, find the Button
Button myButton = findViewById(R.id.my_button);
View IDs need not be unique throughout the tree, but it is good practice to ensure that they are at least unique within the part of the tree you are searching.
Position
The geometry of a view is that of a rectangle. A view has a location, expressed as a pair of left and top coordinates, and two dimensions, expressed as a width and a height. The unit for location and dimensions is the pixel.
It is possible to retrieve the location of a view by invoking the methods
getLeft()
and getTop()
. The former returns the left, or X,
coordinate of the rectangle representing the view. The latter returns the
top, or Y, coordinate of the rectangle representing the view. These methods
both return the location of the view relative to its parent. For instance,
when getLeft() returns 20, that means the view is located 20 pixels to the
right of the left edge of its direct parent.
In addition, several convenience methods are offered to avoid unnecessary
computations, namely getRight()
and getBottom()
.
These methods return the coordinates of the right and bottom edges of the
rectangle representing the view. For instance, calling getRight()
is similar to the following computation: getLeft() + getWidth()
(see Size for more information about the width.)
Size, padding and margins
The size of a view is expressed with a width and a height. A view actually possess two pairs of width and height values.
The first pair is known as measured width and
measured height. These dimensions define how big a view wants to be
within its parent (see Layout for more details.) The
measured dimensions can be obtained by calling getMeasuredWidth()
and getMeasuredHeight()
.
The second pair is simply known as width and height, or
sometimes drawing width and drawing height. These
dimensions define the actual size of the view on screen, at drawing time and
after layout. These values may, but do not have to, be different from the
measured width and height. The width and height can be obtained by calling
getWidth()
and getHeight()
.
To measure its dimensions, a view takes into account its padding. The padding
is expressed in pixels for the left, top, right and bottom parts of the view.
Padding can be used to offset the content of the view by a specific amount of
pixels. For instance, a left padding of 2 will push the view's content by
2 pixels to the right of the left edge. Padding can be set using the
setPadding(int, int, int, int)
or setPaddingRelative(int, int, int, int)
method and queried by calling getPaddingLeft()
, getPaddingTop()
,
getPaddingRight()
, getPaddingBottom()
, getPaddingStart()
,
getPaddingEnd()
.
Even though a view can define a padding, it does not provide any support for
margins. However, view groups provide such a support. Refer to
ViewGroup
and
ViewGroup.MarginLayoutParams
for further information.
Layout
Layout is a two pass process: a measure pass and a layout pass. The measuring
pass is implemented in measure(int, int)
and is a top-down traversal
of the view tree. Each view pushes dimension specifications down the tree
during the recursion. At the end of the measure pass, every view has stored
its measurements. The second pass happens in
layout(int, int, int, int)
and is also top-down. During
this pass each parent is responsible for positioning all of its children
using the sizes computed in the measure pass.
When a view's measure() method returns, its getMeasuredWidth()
and
getMeasuredHeight()
values must be set, along with those for all of
that view's descendants. A view's measured width and measured height values
must respect the constraints imposed by the view's parents. This guarantees
that at the end of the measure pass, all parents accept all of their
children's measurements. A parent view may call measure() more than once on
its children. For example, the parent may measure each child once with
unspecified dimensions to find out how big they want to be, then call
measure() on them again with actual numbers if the sum of all the children's
unconstrained sizes is too big or too small.
The measure pass uses two classes to communicate dimensions. The
MeasureSpec
class is used by views to tell their parents how they
want to be measured and positioned. The base LayoutParams class just
describes how big the view wants to be for both width and height. For each
dimension, it can specify one of:
- an exact number
- MATCH_PARENT, which means the view wants to be as big as its parent (minus padding)
- WRAP_CONTENT, which means that the view wants to be just big enough to enclose its content (plus padding).
MeasureSpecs are used to push requirements down the tree from parent to child. A MeasureSpec can be in one of three modes:
- UNSPECIFIED: This is used by a parent to determine the desired dimension of a child view. For example, a LinearLayout may call measure() on its child with the height set to UNSPECIFIED and a width of EXACTLY 240 to find out how tall the child view wants to be given a width of 240 pixels.
- EXACTLY: This is used by the parent to impose an exact size on the child. The child must use this size, and guarantee that all of its descendants will fit within this size.
- AT_MOST: This is used by the parent to impose a maximum size on the child. The child must guarantee that it and all of its descendants will fit within this size.
To initiate a layout, call requestLayout()
. This method is typically
called by a view on itself when it believes that it can no longer fit within
its current bounds.
Drawing
Drawing is handled by walking the tree and recording the drawing commands of any View that needs to update. After this, the drawing commands of the entire tree are issued to screen, clipped to the newly damaged area.
The tree is largely recorded and drawn in order, with parents drawn before
(i.e., behind) their children, with siblings drawn in the order they appear
in the tree. If you set a background drawable for a View, then the View will
draw it before calling back to its onDraw()
method. The child
drawing order can be overridden with
custom child drawing order
in a ViewGroup, and with setZ(float)
custom Z values} set on Views.
To force a view to draw, call invalidate()
.
Event Handling and Threading
The basic cycle of a view is as follows:
- An event comes in and is dispatched to the appropriate view. The view handles the event and notifies any listeners.
- If in the course of processing the event, the view's bounds may need
to be changed, the view will call
requestLayout()
. - Similarly, if in the course of processing the event the view's appearance
may need to be changed, the view will call
invalidate()
. - If either
requestLayout()
orinvalidate()
were called, the framework will take care of measuring, laying out, and drawing the tree as appropriate.
Note: The entire view tree is single threaded. You must always be on
the UI thread when calling any method on any view.
If you are doing work on other threads and want to update the state of a view
from that thread, you should use a Handler
.
Focus Handling
The framework will handle routine focus movement in response to user input.
This includes changing the focus as views are removed or hidden, or as new
views become available. Views indicate their willingness to take focus
through the isFocusable()
method. To change whether a view can take
focus, call setFocusable(boolean)
. When in touch mode (see notes below)
views indicate whether they still would like focus via isFocusableInTouchMode()
and can change this via setFocusableInTouchMode(boolean)
.
Focus movement is based on an algorithm which finds the nearest neighbor in a given direction. In rare cases, the default algorithm may not match the intended behavior of the developer. In these situations, you can provide explicit overrides by using these XML attributes in the layout file:
nextFocusDown nextFocusLeft nextFocusRight nextFocusUp
To get a particular view to take focus, call requestFocus()
.
Touch Mode
When a user is navigating a user interface via directional keys such as a D-pad, it is necessary to give focus to actionable items such as buttons so the user can see what will take input. If the device has touch capabilities, however, and the user begins interacting with the interface by touching it, it is no longer necessary to always highlight, or give focus to, a particular view. This motivates a mode for interaction named 'touch mode'.
For a touch capable device, once the user touches the screen, the device
will enter touch mode. From this point onward, only views for which
isFocusableInTouchMode()
is true will be focusable, such as text editing widgets.
Other views that are touchable, like buttons, will not take focus when touched; they will
only fire the on click listeners.
Any time a user hits a directional key, such as a D-pad direction, the view device will exit touch mode, and find a view to take focus, so that the user may resume interacting with the user interface without touching the screen again.
The touch mode state is maintained across Activity
s. Call
isInTouchMode()
to see whether the device is currently in touch mode.
Scrolling
The framework provides basic support for views that wish to internally
scroll their content. This includes keeping track of the X and Y scroll
offset as well as mechanisms for drawing scrollbars. See
scrollBy(int, int)
, scrollTo(int, int)
, and
awakenScrollBars()
for more details.
Tags
Unlike IDs, tags are not used to identify views. Tags are essentially an extra piece of information that can be associated with a view. They are most often used as a convenience to store data related to views in the views themselves rather than by putting them in a separate structure.
Tags may be specified with character sequence values in layout XML as either
a single tag using the android:tag
attribute or multiple tags using the <tag>
child element:
<View ... android:tag="@string/mytag_value" /> <View ...> <tag android:id="@+id/mytag" android:value="@string/mytag_value" /> </View>
Tags may also be specified with arbitrary objects from code using
setTag(java.lang.Object)
or setTag(int, java.lang.Object)
.
Themes
By default, Views are created using the theme of the Context object supplied
to their constructor; however, a different theme may be specified by using
the android:theme
attribute in layout
XML or by passing a ContextThemeWrapper
to the constructor from
code.
When the android:theme
attribute is
used in XML, the specified theme is applied on top of the inflation
context's theme (see LayoutInflater
) and used for the view itself as
well as any child elements.
In the following example, both views will be created using the Material dark
color scheme; however, because an overlay theme is used which only defines a
subset of attributes, the value of
android:colorAccent
defined on
the inflation context's theme (e.g. the Activity theme) will be preserved.
<LinearLayout ... android:theme="@android:theme/ThemeOverlay.Material.Dark"> <View ...> </LinearLayout>
Properties
The View class exposes an ALPHA
property, as well as several transform-related
properties, such as TRANSLATION_X
and TRANSLATION_Y
. These properties are
available both in the Property
form as well as in similarly-named setter/getter
methods (such as setAlpha(float)
for ALPHA
). These properties can
be used to set persistent state associated with these rendering-related properties on the view.
The properties and methods can also be used in conjunction with
Animator
-based animations, described more in the
Animation section.
Animation
Starting with Android 3.0, the preferred way of animating views is to use the
android.animation
package APIs. These Animator
-based
classes change actual properties of the View object, such as alpha
and
translationX
. This behavior is contrasted to that of the pre-3.0
Animation
-based classes, which instead animate only
how the view is drawn on the display. In particular, the ViewPropertyAnimator
class
makes animating these View properties particularly easy and efficient.
Alternatively, you can use the pre-3.0 animation classes to animate how Views are rendered.
You can attach an Animation
object to a view using
setAnimation(android.view.animation.Animation)
or
startAnimation(android.view.animation.Animation)
. The animation can alter the scale,
rotation, translation and alpha of a view over time. If the animation is
attached to a view that has children, the animation will affect the entire
subtree rooted by that node. When an animation is started, the framework will
take care of redrawing the appropriate views until the animation completes.
Security
Sometimes it is essential that an application be able to verify that an action is being performed with the full knowledge and consent of the user, such as granting a permission request, making a purchase or clicking on an advertisement. Unfortunately, a malicious application could try to spoof the user into performing these actions, unaware, by concealing the intended purpose of the view. As a remedy, the framework offers a touch filtering mechanism that can be used to improve the security of views that provide access to sensitive functionality.
To enable touch filtering, call setFilterTouchesWhenObscured(boolean)
or set the
android:filterTouchesWhenObscured layout attribute to true. When enabled, the framework
will discard touches that are received whenever the view's window is obscured by
another visible window at the touched location. As a result, the view will not receive touches
whenever the touch passed through a toast, dialog or other window that appears above the view's
window.
For more fine-grained control over security, consider overriding the
onFilterTouchEventForSecurity(android.view.MotionEvent)
method to implement your own
security policy. See also MotionEvent.FLAG_WINDOW_IS_OBSCURED
.
See also:
Summary
Nested classes | |
---|---|
class |
View.AccessibilityDelegate
This class represents a delegate that can be registered in a |
class |
View.BaseSavedState
Base class for derived classes that want to save and restore their own
state in |
class |
View.DragShadowBuilder
Creates an image that the system displays during the drag and drop operation. |
class |
View.MeasureSpec
A MeasureSpec encapsulates the layout requirements passed from parent to child. |
interface |
View.OnApplyWindowInsetsListener
Listener for applying window insets on a view in a custom way. |
interface |
View.OnAttachStateChangeListener
Interface definition for a callback to be invoked when this view is attached or detached from its window. |
interface |
View.OnCapturedPointerListener
Interface definition for a callback to be invoked when a captured pointer event is being dispatched this view. |
interface |
View.OnClickListener
Interface definition for a callback to be invoked when a view is clicked. |
interface |
View.OnContextClickListener
Interface definition for a callback to be invoked when a view is context clicked. |
interface |
View.OnCreateContextMenuListener
Interface definition for a callback to be invoked when the context menu for this view is being built. |
interface |
View.OnDragListener
Interface definition for a listener that's invoked when a drag event is dispatched to this view. |
interface |
View.OnFocusChangeListener
Interface definition for a callback to be invoked when the focus state of a view changed. |
interface |
View.OnGenericMotionListener
Interface definition for a callback to be invoked when a generic motion event is dispatched to this view. |
interface |
View.OnHoverListener
Interface definition for a callback to be invoked when a hover event is dispatched to this view. |
interface |
View.OnKeyListener
Interface definition for a callback to be invoked when a hardware key event is dispatched to this view. |
interface |
View.OnLayoutChangeListener
Interface definition for a callback to be invoked when the layout bounds of a view changes due to layout processing. |
interface |
View.OnLongClickListener
Interface definition for a callback to be invoked when a view has been clicked and held. |
interface |
View.OnScrollChangeListener
Interface definition for a callback to be invoked when the scroll X or Y positions of a view change. |
interface |
View.OnSystemUiVisibilityChangeListener
This interface was deprecated
in API level 30.
Use |
interface |
View.OnTouchListener
Interface definition for a callback to be invoked when a touch event is dispatched to this view. |
interface |
View.OnUnhandledKeyEventListener
Interface definition for a callback to be invoked when a hardware key event hasn't been handled by the view hierarchy. |
XML attributes | |
---|---|
android:accessibilityHeading |
Whether or not this view is a heading for accessibility purposes. |
android:accessibilityLiveRegion |
Indicates to accessibility services whether the user should be notified when this view changes. |
android:accessibilityPaneTitle |
The title this view should present to accessibility as a pane title. |
android:accessibilityTraversalAfter |
Sets the id of a view that screen readers are requested to visit before this view. |
android:accessibilityTraversalBefore |
Sets the id of a view that screen readers are requested to visit after this view. |
android:allowClickWhenDisabled |
Whether or not allow clicks on disabled view. |
android:alpha |
alpha property of the view, as a value between 0 (completely transparent) and 1 (completely opaque). |
android:autoHandwritingEnabled |
Whether or not the auto handwriting initiation is enabled in this View. |
android:autofillHints |
Describes the content of a view so that a autofill service can fill in the appropriate data. |
android:autofilledHighlight |
Drawable to be drawn over the view to mark it as autofilled
May be a reference to another resource, in the form
" |
android:background |
A drawable to use as the background. |
android:backgroundTint |
Tint to apply to the background. |
android:backgroundTintMode |
Blending mode used to apply the background tint. |
android:clickable |
Defines whether this view reacts to click events. |
android:clipToOutline |
Whether the View's Outline should be used to clip the contents of the View. |
android:contentDescription |
Defines text that briefly describes content of the view. |
android:contextClickable |
Defines whether this view reacts to context click events. |
android:defaultFocusHighlightEnabled |
Whether this View should use a default focus highlight when it gets focused but
doesn't have R.attr.state_focused defined in its background.
|
android:drawingCacheQuality |
Defines the quality of translucent drawing caches. |
android:duplicateParentState |
When this attribute is set to true, the view gets its drawable state (focused, pressed, etc.) from its direct parent rather than from itself. |
android:elevation |
base z depth of the view. |
android:fadeScrollbars |
Defines whether to fade out scrollbars when they are not in use. |
android:fadingEdgeLength |
Defines the length of the fading edges. |
android:filterTouchesWhenObscured |
Specifies whether to filter touches when the view's window is obscured by another visible window. |
android:fitsSystemWindows |
Boolean internal attribute to adjust view layout based on system windows such as the status bar. |
android:focusable |
Controls whether a view can take focus. |
android:focusableInTouchMode |
Boolean that controls whether a view can take focus while in touch mode. |
android:focusedByDefault |
Whether this view is a default-focus view. |
android:forceHasOverlappingRendering |
Whether this view has elements that may overlap when drawn. |
android:foreground |
Defines the drawable to draw over the content. |
android:foregroundGravity |
Defines the gravity to apply to the foreground drawable. |
android:foregroundTint |
Tint to apply to the foreground. |
android:foregroundTintMode |
Blending mode used to apply the foreground tint. |
android:hapticFeedbackEnabled |
Boolean that controls whether a view should have haptic feedback enabled for events such as long presses. |
android:id |
Supply an identifier name for this view, to later retrieve it
with View.findViewById() or
Activity.findViewById() .
|
android:importantForAccessibility |
Describes whether or not this view is important for accessibility. |
android:importantForAutofill |
Hints the Android System whether the view node associated with this View should be included in a view structure used for autofill purposes. |
android:importantForContentCapture |
Hints the Android System whether the view node associated with this View should be use for content capture purposes. |
android:isCredential |
Boolean that hints the Android System that the view is credential and associated with
CredentialManager
May be a boolean value, such as " |
android:isScrollContainer |
Set this if the view will serve as a scrolling container, meaning that it can be resized to shrink its overall window so that there will be space for an input method. |
android:keepScreenOn |
Controls whether the view's window should keep the screen on while visible. |
android:keyboardNavigationCluster |
Whether this view is a root of a keyboard navigation cluster. |
android:layerType |
Specifies the type of layer backing this view. |
android:layoutDirection |
Defines the direction of layout drawing. |
android:longClickable |
Defines whether this view reacts to long click events. |
android:minHeight |
Defines the minimum height of the view. |
android:minWidth |
Defines the minimum width of the view. |
android:nextClusterForward |
Defines the next keyboard navigation cluster. |
android:nextFocusDown |
Defines the next view to give focus to when the next focus is
View.FOCUS_DOWN
If the reference refers to a view that does not exist or is part
of a hierarchy that is invisible, a RuntimeException
will result when the reference is accessed.
|
android:nextFocusForward |
Defines the next view to give focus to when the next focus is
View.FOCUS_FORWARD
If the reference refers to a view that does not exist or is part
of a hierarchy that is invisible, a RuntimeException
will result when the reference is accessed.
|
android:nextFocusLeft |
Defines the next view to give focus to when the next focus is
View.FOCUS_LEFT .
|
android:nextFocusRight |
Defines the next view to give focus to when the next focus is
View.FOCUS_RIGHT
If the reference refers to a view that does not exist or is part
of a hierarchy that is invisible, a RuntimeException
will result when the reference is accessed.
|
android:nextFocusUp |
Defines the next view to give focus to when the next focus is
View.FOCUS_UP
If the reference refers to a view that does not exist or is part
of a hierarchy that is invisible, a RuntimeException
will result when the reference is accessed.
|
android:onClick |
Name of the method in this View's context to invoke when the view is clicked. |
android:outlineAmbientShadowColor |
Sets the color of the ambient shadow that is drawn when the view has a positive Z or elevation value. |
android:outlineSpotShadowColor |
Sets the color of the spot shadow that is drawn when the view has a positive Z or elevation value. |
android:padding |
Sets the padding, in pixels, of all four edges. |
android:paddingBottom |
Sets the padding, in pixels, of the bottom edge; see R.attr.padding .
|
android:paddingEnd |
Sets the padding, in pixels, of the end edge; see R.attr.padding .
|
android:paddingHorizontal |
Sets the padding, in pixels, of the left and right edges; see
R.attr.padding .
|
android:paddingLeft |
Sets the padding, in pixels, of the left edge; see R.attr.padding .
|
android:paddingRight |
Sets the padding, in pixels, of the right edge; see R.attr.padding .
|
android:paddingStart |
Sets the padding, in pixels, of the start edge; see R.attr.padding .
|
android:paddingTop |
Sets the padding, in pixels, of the top edge; see R.attr.padding .
|
android:paddingVertical |
Sets the padding, in pixels, of the top and bottom edges; see
R.attr.padding .
|
android:preferKeepClear |
Sets a preference to keep the bounds of this view clear from floating windows above this view's window. |
android:requiresFadingEdge |
Defines which edges should be faded on scrolling. |
android:rotation |
rotation of the view, in degrees. |
android:rotationX |
rotation of the view around the x axis, in degrees. |
android:rotationY |
rotation of the view around the y axis, in degrees. |
android:saveEnabled |
If false, no state will be saved for this view when it is being frozen. |
android:scaleX |
scale of the view in the x direction. |
android:scaleY |
scale of the view in the y direction. |
android:screenReaderFocusable |
Whether this view should be treated as a focusable unit by screen reader accessibility tools. |
android:scrollIndicators |
Defines which scroll indicators should be displayed when the view can be scrolled. |
android:scrollX |
The initial horizontal scroll offset, in pixels. |
android:scrollY |
The initial vertical scroll offset, in pixels. |
android:scrollbarAlwaysDrawHorizontalTrack |
Defines whether the horizontal scrollbar track should always be drawn. |
android:scrollbarAlwaysDrawVerticalTrack |
Defines whether the vertical scrollbar track should always be drawn. |
android:scrollbarDefaultDelayBeforeFade |
Defines the delay in milliseconds that a scrollbar waits before fade out. |
android:scrollbarFadeDuration |
Defines the delay in milliseconds that a scrollbar takes to fade out. |
android:scrollbarSize |
Sets the width of vertical scrollbars and height of horizontal scrollbars. |
android:scrollbarStyle |
Controls the scrollbar style and position. |
android:scrollbarThumbHorizontal |
Defines the horizontal scrollbar thumb drawable. |
android:scrollbarThumbVertical |
Defines the vertical scrollbar thumb drawable. |
android:scrollbarTrackHorizontal |
Defines the horizontal scrollbar track drawable. |
android:scrollbarTrackVertical |
Defines the vertical scrollbar track drawable. |
android:scrollbars |
Defines which scrollbars should be displayed on scrolling or not. |
android:soundEffectsEnabled |
Boolean that controls whether a view should have sound effects enabled for events such as clicking and touching. |
android:stateListAnimator |
Sets the state-based animator for the View. |
android:supplementalDescription |
Provides brief supplemental information for the view, such as the purpose of the view when that purpose is not conveyed within its textual representation. |
android:tag |
Supply a tag for this view containing a String, to be retrieved
later with View.getTag() or
searched for with View.findViewWithTag() .
|
android:textAlignment |
Defines the alignment of the text. |
android:textDirection |
Defines the direction of the text. |
android:theme |
Specifies a theme override for a view. |
android:tooltipText |
Defines text displayed in a small popup window on hover or long press. |
android:transformPivotX |
x location of the pivot point around which the view will rotate and scale. |
android:transformPivotY |
y location of the pivot point around which the view will rotate and scale. |
android:transitionName |
Names a View such that it can be identified for Transitions. |
android:translationX |
translation in x of the view. |
android:translationY |
translation in y of the view. |
android:translationZ |
translation in z of the view. |
android:visibility |
Controls the initial visibility of the view. |
Constants | |
---|---|
int |
ACCESSIBILITY_DATA_SENSITIVE_AUTO
Automatically determine whether the view should only allow interactions from
|
int |
ACCESSIBILITY_DATA_SENSITIVE_NO
Allow interactions from all |
int |
ACCESSIBILITY_DATA_SENSITIVE_YES
Only allow interactions from |
int |
ACCESSIBILITY_LIVE_REGION_ASSERTIVE
Live region mode specifying that accessibility services should immediately notify users of changes to this view. |
int |
ACCESSIBILITY_LIVE_REGION_NONE
Live region mode specifying that accessibility services should not automatically announce changes to this view. |
int |
ACCESSIBILITY_LIVE_REGION_POLITE
Live region mode specifying that accessibility services should notify users of changes to this view. |
int |
AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS
Flag requesting you to add views that are marked as not important for autofill
(see |
String |
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE
Hint indicating that this view can be autofilled with a credit card expiration date. |
String |
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY
Hint indicating that this view can be autofilled with a credit card expiration day. |
String |
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH
Hint indicating that this view can be autofilled with a credit card expiration month. |
String |
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR
Hint indicating that this view can be autofilled with a credit card expiration year. |
String |
AUTOFILL_HINT_CREDIT_CARD_NUMBER
Hint indicating that this view can be autofilled with a credit card number. |
String |
AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE
Hint indicating that this view can be autofilled with a credit card security code. |
String |
AUTOFILL_HINT_EMAIL_ADDRESS
Hint indicating that this view can be autofilled with an email address. |
String |
AUTOFILL_HINT_NAME
Hint indicating that this view can be autofilled with a user's real name. |
String |
AUTOFILL_HINT_PASSWORD
Hint indicating that this view can be autofilled with a password. |
String |
AUTOFILL_HINT_PHONE
Hint indicating that this view can be autofilled with a phone number. |
String |
AUTOFILL_HINT_POSTAL_ADDRESS
Hint indicating that this view can be autofilled with a postal address. |
String |
AUTOFILL_HINT_POSTAL_CODE
Hint indicating that this view can be autofilled with a postal code. |
String |
AUTOFILL_HINT_USERNAME
Hint indicating that this view can be autofilled with a username. |
int |
AUTOFILL_TYPE_DATE
Autofill type for a field that contains a date, which is represented by a long representing
the number of milliseconds since the standard base time known as "the epoch", namely
January 1, 1970, 00:00:00 GMT (see |
int |
AUTOFILL_TYPE_LIST
Autofill type for a selection list field, which is filled by an |
int |
AUTOFILL_TYPE_NONE
Autofill type for views that cannot be autofilled. |
int |
AUTOFILL_TYPE_TEXT
Autofill type for a text field, which is filled by a |
int |
AUTOFILL_TYPE_TOGGLE
Autofill type for a togglable field, which is filled by a |
int |
CONTENT_SENSITIVITY_AUTO
Content sensitivity is determined by the framework. |
int |
CONTENT_SENSITIVITY_NOT_SENSITIVE
The view doesn't display sensitive content. |
int |
CONTENT_SENSITIVITY_SENSITIVE
The view displays sensitive content. |
int |
DRAG_FLAG_ACCESSIBILITY_ACTION
Flag indicating that the drag was initiated with
|
int |
DRAG_FLAG_GLOBAL
Flag indicating that a drag can cross window boundaries. |
int |
DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION
When this flag is used with |
int |
DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION
When this flag is used with |
int |
DRAG_FLAG_GLOBAL_SAME_APPLICATION
Flag indicating that a drag can cross window boundaries (within the same application). |
int |
DRAG_FLAG_GLOBAL_URI_READ
When this flag is used with |
int |
DRAG_FLAG_GLOBAL_URI_WRITE
When this flag is used with |
int |
DRAG_FLAG_HIDE_CALLING_TASK_ON_DRAG_START
Flag indicating that this drag will result in the caller activity's task to be hidden for the duration of the drag, which means that the source activity will not receive drag events for the current drag gesture. |
int |
DRAG_FLAG_OPAQUE
Flag indicating that the drag shadow will be opaque. |
int |
DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG
Flag indicating that an unhandled drag should be delegated to the system to be started if no visible window wishes to handle the drop. |
int |
DRAWING_CACHE_QUALITY_AUTO
This constant was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, |
int |
DRAWING_CACHE_QUALITY_HIGH
This constant was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, |
int |
DRAWING_CACHE_QUALITY_LOW
This constant was deprecated
in API level 28.
The view drawing cache was largely made obsolete with the introduction of
hardware-accelerated rendering in API 11. With hardware-acceleration, intermediate cache
layers are largely unnecessary and can easily result in a net loss in performance due to the
cost of creating and updating the layer. In the rare cases where caching layers are useful,
such as for alpha animations, |
int |
FIND_VIEWS_WITH_CONTENT_DESCRIPTION
Find find views that contain the specified content description. |
int |
FIND_VIEWS_WITH_TEXT
Find views that render the specified text. |
int |
FOCUSABLE
This view wants keystrokes. |
int |
FOCUSABLES_ALL
View flag indicating whether |
int |
FOCUSABLES_TOUCH_MODE
View flag indicating whether |
int |
FOCUSABLE_AUTO
This view determines focusability automatically. |
int |
FOCUS_BACKWARD
Use with |
int |
FOCUS_DOWN
Use with |
int |
FOCUS_FORWARD
Use with |
int |
FOCUS_LEFT
Use with |
int |
FOCUS_RIGHT
Use with |
int |
FOCUS_UP
Use with |
int |
GONE
This view is invisible, and it doesn't take any space for layout purposes. |
int |
HAPTIC_FEEDBACK_ENABLED
View flag indicating whether this view should have haptic feedback enabled for events such as long presses. |
int |
IMPORTANT_FOR_ACCESSIBILITY_AUTO
Automatically determine whether a view is important for accessibility. |
int |
IMPORTANT_FOR_ACCESSIBILITY_NO
The view is not important for accessibility. |
int |
IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS
The view is not important for accessibility, nor are any of its descendant views. |
int |
IMPORTANT_FOR_ACCESSIBILITY_YES
The view is important for accessibility. |
int |
IMPORTANT_FOR_AUTOFILL_AUTO
Automatically determine whether a view is important for autofill. |
int |
IMPORTANT_FOR_AUTOFILL_NO
The view is not important for autofill, but its children (if any) will be traversed. |
int |
IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS
The view is not important for autofill, and its children (if any) will not be traversed. |
int |
IMPORTANT_FOR_AUTOFILL_YES
The view is important for autofill, and its children (if any) will be traversed. |
int |
IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS
The view is important for autofill, but its children (if any) will not be traversed. |
int |
IMPORTANT_FOR_CONTENT_CAPTURE_AUTO
Automatically determine whether a view is important for content capture. |
int |
IMPORTANT_FOR_CONTENT_CAPTURE_NO
The view is not important for content capture, but its children (if any) will be traversed. |
int |
IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS
The view is not important for content capture, and its children (if any) will not be traversed. |
int |
IMPORTANT_FOR_CONTENT_CAPTURE_YES
The view is important for content capture, and its children (if any) will be traversed. |
int |
IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS
The view is important for content capture, but its children (if any) will not be traversed. |
int |
INVISIBLE
This view is invisible, but it still takes up space for layout purposes. |
int |
KEEP_SCREEN_ON
View flag indicating that the screen should remain on while the window containing this view is visible to the user. |
int |
LAYER_TYPE_HARDWARE
Indicates that the view has a hardware layer. |
int |
LAYER_TYPE_NONE
Indicates that the view does not have a layer. |
int |
LAYER_TYPE_SOFTWARE
Indicates that the view has a software layer. |
int |
LAYOUT_DIRECTION_INHERIT
Horizontal layout direction of this view is inherited from its parent. |
int |
LAYOUT_DIRECTION_LOCALE
Horizontal layout direction of this view is from deduced from the default language script for the locale. |
int |
LAYOUT_DIRECTION_LTR
Horizontal layout direction of this view is from Left to Right. |
int |
LAYOUT_DIRECTION_RTL
Horizontal layout direction of this view is from Right to Left. |
int |
MEASURED_HEIGHT_STATE_SHIFT
Bit shift of |
int |
MEASURED_SIZE_MASK
Bits of |
int |
MEASURED_STATE_MASK
Bits of |
int |
MEASURED_STATE_TOO_SMALL
Bit of |
int |
NOT_FOCUSABLE
This view does not want keystrokes. |
int |
NO_ID
Used to mark a View that has no ID. |
int |
OVER_SCROLL_ALWAYS
Always allow a user to over-scroll this view, provided it is a view that can scroll. |
int |
OVER_SCROLL_IF_CONTENT_SCROLLS
Allow a user to over-scroll this view only if the content is large enough to meaningfully scroll, provided it is a view that can scroll. |
int |
OVER_SCROLL_NEVER
Never allow a user to over-scroll this view. |
int |
RECTANGLE_ON_SCREEN_REQUEST_SOURCE_INPUT_FOCUS
Represents that the user interaction that is requesting a rectangle on screen is doing so because the View has input/keyboard focus. |
int |
RECTANGLE_ON_SCREEN_REQUEST_SOURCE_SCROLL_ONLY
Represents that the user interaction that is requesting a rectangle on screen is doing so only to scroll the View on screen, and the rectangle is not associated with a text cursor or keyboard focus. |
int |
RECTANGLE_ON_SCREEN_REQUEST_SOURCE_TEXT_CURSOR
Represents that the user interaction that is requesting a rectangle on screen is doing so because the View contains a text cursor (caret). |
int |
RECTANGLE_ON_SCREEN_REQUEST_SOURCE_UNDEFINED
Represents that the user interaction that is requesting a rectangle on screen is
doing so via the original |
float |
REQUESTED_FRAME_RATE_CATEGORY_DEFAULT
|
float |
REQUESTED_FRAME_RATE_CATEGORY_HIGH
|
float |
REQUESTED_FRAME_RATE_CATEGORY_LOW
|
float |
REQUESTED_FRAME_RATE_CATEGORY_NORMAL
|
float |
REQUESTED_FRAME_RATE_CATEGORY_NO_PREFERENCE
|
int |
SCREEN_STATE_OFF
Indicates that the screen has changed state and is now off. |
int |
SCREEN_STATE_ON
Indicates that the screen has changed state and is now on. |
int |
SCROLLBARS_INSIDE_INSET
The scrollbar style to display the scrollbars inside the padded area, increasing the padding of the view. |
int |
SCROLLBARS_INSIDE_OVERLAY
The scrollbar style to display the scrollbars inside the content area, without increasing the padding. |
int |
SCROLLBARS_OUTSIDE_INSET
The scrollbar style to display the scrollbars at the edge of the view, increasing the padding of the view. |
int |
SCROLLBARS_OUTSIDE_OVERLAY
The scrollbar style to display the scrollbars at the edge of the view, without increasing the padding. |
int |
SCROLLBAR_POSITION_DEFAULT
Position the scroll bar at the default position as determined by the system. |
int |
SCROLLBAR_POSITION_LEFT
Position the scroll bar along the left edge. |
int |
SCROLLBAR_POSITION_RIGHT
Position the scroll bar along the right edge. |
int |
SCROLL_AXIS_HORIZONTAL
Indicates scrolling along the horizontal axis. |
int |
SCROLL_AXIS_NONE
Indicates no axis of view scrolling. |
int |
SCROLL_AXIS_VERTICAL
Indicates scrolling along the vertical axis. |
int |
SCROLL_CAPTURE_HINT_AUTO
The content of this view will be considered for scroll capture if scrolling is possible. |
int |
SCROLL_CAPTURE_HINT_EXCLUDE
Explicitly exclude this view as a potential scroll capture target. |
int |
SCROLL_CAPTURE_HINT_EXCLUDE_DESCENDANTS
Explicitly exclude all children of this view as potential scroll capture targets. |
int |
SCROLL_CAPTURE_HINT_INCLUDE
Explicitly include this view as a potential scroll capture target. |
int |
SCROLL_INDICATOR_BOTTOM
Scroll indicator direction for the bottom edge of the view. |
int |
SCROLL_INDICATOR_END
Scroll indicator direction for the ending edge of the view. |
int |
SCROLL_INDICATOR_LEFT
Scroll indicator direction for the left edge of the view. |
int |
SCROLL_INDICATOR_RIGHT
Scroll indicator direction for the right edge of the view. |
int |
SCROLL_INDICATOR_START
Scroll indicator direction for the starting edge of the view. |
int |
SCROLL_INDICATOR_TOP
Scroll indicator direction for the top edge of the view. |
int |
SOUND_EFFECTS_ENABLED
View flag indicating whether this view should have sound effects enabled for events such as clicking and touching. |
int |
STATUS_BAR_HIDDEN
This constant was deprecated
in API level 15.
Use |
int |
STATUS_BAR_VISIBLE
This constant was deprecated
in API level 15.
Use |
int |
SYSTEM_UI_FLAG_FULLSCREEN
This constant was deprecated
in API level 30.
Use |
int |
SYSTEM_UI_FLAG_HIDE_NAVIGATION
This constant was deprecated
in API level 30.
Use |
int |
SYSTEM_UI_FLAG_IMMERSIVE
This constant was deprecated
in API level 30.
Use |
int |
SYSTEM_UI_FLAG_IMMERSIVE_STICKY
This constant was deprecated
in API level 30.
Use |
int |
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
This constant was deprecated
in API level 30.
For floating windows, use |
int |
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
This constant was deprecated
in API level 30.
For floating windows, use |
int |
SYSTEM_UI_FLAG_LAYOUT_STABLE
This constant was deprecated
in API level 30.
Use |
int |
SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
This constant was deprecated
in API level 30.
Use |
int |
SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
This constant was deprecated
in API level 30.
Use |
int |
SYSTEM_UI_FLAG_LOW_PROFILE
This constant was deprecated
in API level 30.
Low profile mode is deprecated. Hide the system bars instead if the application
needs to be in a unobtrusive mode. Use |
int |
SYSTEM_UI_FLAG_VISIBLE
This constant was deprecated
in API level 30.
SystemUiVisibility flags are deprecated. Use |
int |
SYSTEM_UI_LAYOUT_FLAGS
This constant was deprecated in API level 30. System UI layout flags are deprecated. |
int |
TEXT_ALIGNMENT_CENTER
Center the paragraph, e.g. ALIGN_CENTER. |
int |
TEXT_ALIGNMENT_GRAVITY
Default for the root view. |
int |
TEXT_ALIGNMENT_INHERIT
Default text alignment. |
int |
TEXT_ALIGNMENT_TEXT_END
Align to the end of the paragraph, e.g. ALIGN_OPPOSITE. |
int |
|