ViewGroupCompat

Added in 1.1.0

class ViewGroupCompat


Helper for accessing features in ViewGroup.

Summary

Constants

const Int

This constant is a layoutMode.

const Int

This constant is a layoutMode.

Public functions

java-static Int
@ReplaceWith(expression = "group.getLayoutMode()")
getLayoutMode(group: ViewGroup)

This function is deprecated.

Call getLayoutMode directly.

java-static Int

Return the current axes of nested scrolling for this ViewGroup.

java-static Unit

Installs a custom View.OnApplyWindowInsetsListener which dispatches WindowInsets to the given root and its descendants in a way compatible with Android R+ that consuming or modifying insets will only affect the descendants.

java-static Boolean

Returns true if this ViewGroup should be considered as a single entity for removal when executing an Activity transition.

java-static Boolean
@ReplaceWith(expression = "group.onRequestSendAccessibilityEvent(child, event)")
onRequestSendAccessibilityEvent(
    group: ViewGroup!,
    child: View!,
    event: AccessibilityEvent!
)

This function is deprecated.

Use onRequestSendAccessibilityEvent directly.

java-static Unit
@ReplaceWith(expression = "group.setLayoutMode(mode)")
setLayoutMode(group: ViewGroup, mode: Int)

This function is deprecated.

Call setLayoutMode directly.

java-static Unit
@ReplaceWith(expression = "group.setMotionEventSplittingEnabled(split)")
setMotionEventSplittingEnabled(group: ViewGroup!, split: Boolean)

This function is deprecated.

Use setMotionEventSplittingEnabled directly.

java-static Unit
setTransitionGroup(group: ViewGroup, isTransitionGroup: Boolean)

Changes whether or not this ViewGroup should be treated as a single entity during Activity Transitions.

Constants

LAYOUT_MODE_CLIP_BOUNDS

Added in 1.1.0
const val LAYOUT_MODE_CLIP_BOUNDS = 0: Int

This constant is a layoutMode. Clip bounds are the raw values of left, top, right and bottom.

LAYOUT_MODE_OPTICAL_BOUNDS

Added in 1.1.0
const val LAYOUT_MODE_OPTICAL_BOUNDS = 1: Int

This constant is a layoutMode. Optical bounds describe where a widget appears to be. They sit inside the clip bounds which need to cover a larger area to allow other effects, such as shadows and glows, to be drawn.

Public functions

getLayoutMode

Added in 1.1.0
Deprecated in 1.15.0
@ReplaceWith(expression = "group.getLayoutMode()")
java-static fun getLayoutMode(group: ViewGroup): Int

Returns the basis of alignment during layout operations on this ViewGroup: either LAYOUT_MODE_CLIP_BOUNDS or LAYOUT_MODE_OPTICAL_BOUNDS.

If no layoutMode was explicitly set, either programmatically or in an XML resource, the method returns the layoutMode of the view's parent ViewGroup if such a parent exists, otherwise the method returns a default value of LAYOUT_MODE_CLIP_BOUNDS.

Returns
Int

the layout mode to use during layout operations

See also
setLayoutMode

getNestedScrollAxes

Added in 1.1.0
java-static fun getNestedScrollAxes(group: ViewGroup): Int

Return the current axes of nested scrolling for this ViewGroup.

A ViewGroup returning something other than SCROLL_AXIS_NONE is currently acting as a nested scrolling parent for one or more descendant views in the hierarchy.

Returns
Int

Flags indicating the current axes of nested scrolling

installCompatInsetsDispatch

java-static fun installCompatInsetsDispatch(root: View): Unit

Installs a custom View.OnApplyWindowInsetsListener which dispatches WindowInsets to the given root and its descendants in a way compatible with Android R+ that consuming or modifying insets will only affect the descendants.

Note: When using this method, ensure that ViewCompat.setOnApplyWindowInsetsListener() is used instead of the platform call.

Parameters
root: View

The root view that the custom listener is installed on. Note: the listener will consume the insets, so make sure the given root is the root view of the window, or its siblings might not be able to get insets dispatched.

isTransitionGroup

Added in 1.1.0
java-static fun isTransitionGroup(group: ViewGroup): Boolean

Returns true if this ViewGroup should be considered as a single entity for removal when executing an Activity transition. If this is false, child elements will move individually during the transition.

onRequestSendAccessibilityEvent

Added in 1.1.0
Deprecated in 1.1.0
@ReplaceWith(expression = "group.onRequestSendAccessibilityEvent(child, event)")
java-static fun onRequestSendAccessibilityEvent(
    group: ViewGroup!,
    child: View!,
    event: AccessibilityEvent!
): Boolean

Called when a child has requested sending an AccessibilityEvent and gives an opportunity to its parent to augment the event.

If an AccessibilityDelegateCompat has been specified via calling setAccessibilityDelegate its onRequestSendAccessibilityEvent is responsible for handling this call.

Parameters
group: ViewGroup!

The group whose method to invoke.

child: View!

The child which requests sending the event.

event: AccessibilityEvent!

The event to be sent.

Returns
Boolean

True if the event should be sent.

setLayoutMode

Added in 1.1.0
Deprecated in 1.15.0
@ReplaceWith(expression = "group.setLayoutMode(mode)")
java-static fun setLayoutMode(group: ViewGroup, mode: Int): Unit

Sets the basis of alignment during the layout of this ViewGroup. Valid values are either LAYOUT_MODE_CLIP_BOUNDS or LAYOUT_MODE_OPTICAL_BOUNDS.

Parameters
group: ViewGroup

ViewGroup for which to set the mode.

mode: Int

the layout mode to use during layout operations

See also
getLayoutMode

setMotionEventSplittingEnabled

Added in 1.1.0
Deprecated in 1.1.0
@ReplaceWith(expression = "group.setMotionEventSplittingEnabled(split)")
java-static fun setMotionEventSplittingEnabled(group: ViewGroup!, split: Boolean): Unit

Enable or disable the splitting of MotionEvents to multiple children during touch event dispatch. This behavior is enabled by default for applications that target an SDK version of 11 (Honeycomb) or newer. On earlier platform versions this feature was not supported and this method is a no-op.

When this option is enabled MotionEvents may be split and dispatched to different child views depending on where each pointer initially went down. This allows for user interactions such as scrolling two panes of content independently, chording of buttons, and performing independent gestures on different pieces of content.

Parameters
group: ViewGroup!

ViewGroup to modify

split: Boolean

true to allow MotionEvents to be split and dispatched to multiple child views. false to only allow one child view to be the target of any MotionEvent received by this ViewGroup.

setTransitionGroup

Added in 1.1.0
java-static fun setTransitionGroup(group: ViewGroup, isTransitionGroup: Boolean): Unit

Changes whether or not this ViewGroup should be treated as a single entity during Activity Transitions.

Parameters
group: ViewGroup

ViewGroup for which to set the mode.

isTransitionGroup: Boolean

Whether or not the ViewGroup should be treated as a unit in Activity transitions. If false, the ViewGroup won't transition, only its children. If true, the entire ViewGroup will transition together.