Save the date! Android Dev Summit is coming to Sunnyvale, CA on Oct 23-24, 2019.

OrientationHelper

abstract class OrientationHelper
kotlin.Any
   ↳ androidx.recyclerview.widget.OrientationHelper

Helper class for LayoutManagers to abstract measurements depending on the View's orientation.

It is developed to easily support vertical and horizontal orientations in a LayoutManager but can also be used to abstract calls around view bounds and child measurements with margins and decorations.

Summary

Constants
static Int

static Int

Public methods
abstract Int

Returns the end of the view including its decoration and margin.

abstract Int

Returns the end position of the layout without taking padding into account.

open RecyclerView.LayoutManager!

Returns the LayoutManager that is associated with this OrientationHelper.

abstract Int

Returns the start of the View after its matrix transformations are applied to its layout position.

abstract Int

Returns the space occupied by this View in the current orientation including decorations and margins.

abstract Int

Returns the end position of the layout after the end padding is removed.

abstract Unit
offsetChild(view: View!, offset: Int)

Offsets the child in this orientation.

open Unit

Call this method after onLayout method is complete if state is NOT pre-layout.

open Int

Returns the layout space change between the previous layout pass and current layout pass.

abstract Int

Returns the start of the view including its decoration and margin.

abstract Int

Returns the space occupied by this View in the perpendicular orientation including decorations and margins.

abstract Int

Returns the start position of the layout after the start padding is added.

abstract Unit

Offsets all children's positions by the given amount.

abstract Int

Returns the total space to layout.

abstract Int

Returns the MeasureSpec mode for the current orientation from the LayoutManager.

abstract Int

Returns the end of the View after its matrix transformations are applied to its layout position.

abstract Int

Returns the padding at the end of the layout.

abstract Int

Returns the MeasureSpec mode for the perpendicular orientation from the LayoutManager.

open static OrientationHelper!
createOrientationHelper(layoutManager: RecyclerView.LayoutManager!, orientation: Int)

Creates an OrientationHelper for the given LayoutManager and orientation.

open static OrientationHelper!

Creates a horizontal OrientationHelper for the given LayoutManager.

open static OrientationHelper!

Creates a vertical OrientationHelper for the given LayoutManager.

Properties
RecyclerView.LayoutManager!

Constants

HORIZONTAL

static val HORIZONTAL: Int
Value: RecyclerView.HORIZONTAL

VERTICAL

static val VERTICAL: Int
Value: RecyclerView.VERTICAL

Public methods

getDecoratedEnd

abstract fun getDecoratedEnd(view: View!): Int

Returns the end of the view including its decoration and margin.

For example, for the horizontal helper, if a View's right is at pixel 200, has 2px right decoration and 3px right margin, returned value will be 205.

Parameters
view View!: The view element to check
Return
Int: The last pixel of the element

getEnd

abstract fun getEnd(): Int

Returns the end position of the layout without taking padding into account.

Return
Int: The end boundary for this layout without considering padding.

getLayoutManager

open fun getLayoutManager(): RecyclerView.LayoutManager!

Returns the LayoutManager that is associated with this OrientationHelper.

getTransformedStartWithDecoration

abstract fun getTransformedStartWithDecoration(view: View!): Int

Returns the start of the View after its matrix transformations are applied to its layout position.

This method is useful when trying to detect the visible edge of a View.

It includes the decorations but does not include the margins.

Parameters
view View!: The view whose transformed start will be returned
Return
Int: The start of the View after its decor insets and transformation matrix is applied to its position

getDecoratedMeasurement

abstract fun getDecoratedMeasurement(view: View!): Int

Returns the space occupied by this View in the current orientation including decorations and margins.

Parameters
view View!: The view element to check
Return
Int: Total space occupied by this view

getEndAfterPadding

abstract fun getEndAfterPadding(): Int

Returns the end position of the layout after the end padding is removed.

Return
Int: The end boundary for this layout.

offsetChild

abstract fun offsetChild(view: View!, offset: Int): Unit

Offsets the child in this orientation.

Parameters
view View!: View to offset
offset View!: offset amount

onLayoutComplete

open fun onLayoutComplete(): Unit

Call this method after onLayout method is complete if state is NOT pre-layout. This method records information like layout bounds that might be useful in the next layout calculations.

getTotalSpaceChange

open fun getTotalSpaceChange(): Int

Returns the layout space change between the previous layout pass and current layout pass.

Make sure you call onLayoutComplete() at the end of your LayoutManager's RecyclerView.LayoutManager#onLayoutChildren(RecyclerView.Recycler, * RecyclerView.State) method.

Return
Int: The difference between the current total space and previous layout's total space.

getDecoratedStart

abstract fun getDecoratedStart(view: View!): Int

Returns the start of the view including its decoration and margin.

For example, for the horizontal helper, if a View's left is at pixel 20, has 2px left decoration and 3px left margin, returned value will be 15px.

Parameters
view View!: The view element to check
Return
Int: The first pixel of the element

getDecoratedMeasurementInOther

abstract fun getDecoratedMeasurementInOther(view: View!): Int

Returns the space occupied by this View in the perpendicular orientation including decorations and margins.

Parameters
view View!: The view element to check
Return
Int: Total space occupied by this view in the perpendicular orientation to current one

getStartAfterPadding

abstract fun getStartAfterPadding(): Int

Returns the start position of the layout after the start padding is added.

Return
Int: The very first pixel we can draw.

offsetChildren

abstract fun offsetChildren(amount: Int): Unit

Offsets all children's positions by the given amount.

Parameters
amount Int: Value to add to each child's layout parameters

getTotalSpace

abstract fun getTotalSpace(): Int

Returns the total space to layout. This number is the difference between getEndAfterPadding() and getStartAfterPadding().

Return
Int: Total space to layout children

getMode

abstract fun getMode(): Int

Returns the MeasureSpec mode for the current orientation from the LayoutManager.

Return
Int: The current measure spec mode.

getTransformedEndWithDecoration

abstract fun getTransformedEndWithDecoration(view: View!): Int

Returns the end of the View after its matrix transformations are applied to its layout position.

This method is useful when trying to detect the visible edge of a View.

It includes the decorations but does not include the margins.

Parameters
view View!: The view whose transformed end will be returned
Return
Int: The end of the View after its decor insets and transformation matrix is applied to its position

getEndPadding

abstract fun getEndPadding(): Int

Returns the padding at the end of the layout. For horizontal helper, this is the right padding and for vertical helper, this is the bottom padding. This method does not check whether the layout is RTL or not.

Return
Int: The padding at the end of the layout.

getModeInOther

abstract fun getModeInOther(): Int

Returns the MeasureSpec mode for the perpendicular orientation from the LayoutManager.

Return
Int: The current measure spec mode.

createOrientationHelper

open static fun createOrientationHelper(layoutManager: RecyclerView.LayoutManager!, orientation: Int): OrientationHelper!

Creates an OrientationHelper for the given LayoutManager and orientation.

Parameters
layoutManager RecyclerView.LayoutManager!: LayoutManager to attach to
orientation RecyclerView.LayoutManager!: Desired orientation. Should be HORIZONTAL or VERTICAL
Return
OrientationHelper!: A new OrientationHelper

createHorizontalHelper

open static fun createHorizontalHelper(layoutManager: RecyclerView.LayoutManager!): OrientationHelper!

Creates a horizontal OrientationHelper for the given LayoutManager.

Parameters
layoutManager RecyclerView.LayoutManager!: The LayoutManager to attach to.
Return
OrientationHelper!: A new OrientationHelper

createVerticalHelper

open static fun createVerticalHelper(layoutManager: RecyclerView.LayoutManager!): OrientationHelper!

Creates a vertical OrientationHelper for the given LayoutManager.

Parameters
layoutManager RecyclerView.LayoutManager!: The LayoutManager to attach to.
Return
OrientationHelper!: A new OrientationHelper

Properties

mLayoutManager

protected val mLayoutManager: RecyclerView.LayoutManager!