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

BaseCardView

open class BaseCardView : FrameLayout
kotlin.Any
   ↳ android.view.View
   ↳ android.view.ViewGroup
   ↳ android.widget.FrameLayout
   ↳ androidx.leanback.widget.BaseCardView

A card style layout that responds to certain state changes. It arranges its children in a vertical column, with different regions becoming visible at different times.

A BaseCardView will draw its children based on its type, the region visibilities of the child types, and the state of the widget. A child may be marked as belonging to one of three regions: main, info, or extra. The main region is always visible, while the info and extra regions can be set to display based on the activated or selected state of the View. The card states are set by calling setActivated and setSelected.

See BaseCardView.LayoutParams for layout attributes.

Summary

Nested classes
open

Per-child layout information associated with BaseCardView.

Constants
static Int

A simple card type with a single layout area.

static Int

A Card type with 2 layout areas: A main area which is always visible, and an info area that fades in over the main area when it is visible.

static Int

A Card type with 2 layout areas: A main area which is always visible, and an info area that appears below the main area.

static Int

A Card type with 3 layout areas: A main area which is always visible; an info area which will appear below the main area, and an extra area that only appears after a short delay.

static Int

Indicates that a card region is always visible.

static Int

Indicates that a card region is visible when the card is activated.

static Int

Indicates that a card region is visible when the card is selected.

Public constructors
<init>(context: Context!)

<init>(context: Context!, attrs: AttributeSet!)

<init>(context: Context!, attrs: AttributeSet!, defStyleAttr: Int)

Public methods
open Unit

Sets the type of this Card.

open Int

Returns the type of this Card.

open Unit
setActivated(activated: Boolean)

Sets the Activated state of this Card.

open Int

Returns the visibility of the extra region of the card.

open Unit
setInfoVisibility(visibility: Int)

Sets the visibility of the info region of the card.

open Unit
setExtraVisibility(visibility: Int)

Sets the visibility of the extra region of the card.

open Boolean

Returns a boolean indicating if the selected animation will run immediately or be delayed the next time the card is Selected.

open Unit

Sets a flag indicating if the Selected animation (if the selected card type implements one) should run immediately after the card is selected, or if it should be delayed.

open Int

Returns the visibility of the info region of the card.

open BaseCardView.LayoutParams!

open Boolean

open String

open Unit
setSelected(selected: Boolean)

Sets the Selected state of this Card.

Protected methods
open IntArray!

open Boolean

open Unit

open Unit
onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int)

open BaseCardView.LayoutParams!

open Unit
onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int)

open BaseCardView.LayoutParams!

Constants

CARD_TYPE_MAIN_ONLY

static val CARD_TYPE_MAIN_ONLY: Int

A simple card type with a single layout area. This card type does not change its layout or size as it transitions between Activated/Not-Activated or Selected/Unselected states.

Value: 0

See Also

CARD_TYPE_INFO_OVER

static val CARD_TYPE_INFO_OVER: Int

A Card type with 2 layout areas: A main area which is always visible, and an info area that fades in over the main area when it is visible. The card height will not change.

Value: 1

See Also

CARD_TYPE_INFO_UNDER

static val CARD_TYPE_INFO_UNDER: Int

A Card type with 2 layout areas: A main area which is always visible, and an info area that appears below the main area. When the info area is visible the total card height will change.

Value: 2

See Also

CARD_TYPE_INFO_UNDER_WITH_EXTRA

static val CARD_TYPE_INFO_UNDER_WITH_EXTRA: Int

A Card type with 3 layout areas: A main area which is always visible; an info area which will appear below the main area, and an extra area that only appears after a short delay. The info area appears below the main area, causing the total card height to change. The extra area animates in at the bottom of the card, shifting up the info view without affecting the card height.

Value: 3

See Also

CARD_REGION_VISIBLE_ALWAYS

static val CARD_REGION_VISIBLE_ALWAYS: Int

Indicates that a card region is always visible.

Value: 0

CARD_REGION_VISIBLE_ACTIVATED

static val CARD_REGION_VISIBLE_ACTIVATED: Int

Indicates that a card region is visible when the card is activated.

Value: 1

CARD_REGION_VISIBLE_SELECTED

static val CARD_REGION_VISIBLE_SELECTED: Int

Indicates that a card region is visible when the card is selected.

Value: 2

Public constructors

<init>

BaseCardView(context: Context!)

<init>

BaseCardView(context: Context!, attrs: AttributeSet!)

<init>

BaseCardView(context: Context!, attrs: AttributeSet!, defStyleAttr: Int)

Public methods

setCardType

open fun setCardType(type: Int): Unit

Sets the type of this Card.

Parameters
type Int: The desired card type.

getCardType

open fun getCardType(): Int

Returns the type of this Card.

Return
Int: The type of this card.

setActivated

open fun setActivated(activated: Boolean): Unit

Sets the Activated state of this Card. This can trigger changes in the card layout, resulting in views to become visible or hidden. A card is normally set to Activated state when its parent container (like a Row) receives focus, and then activates all of its children.

Parameters
activated Boolean: True if the card is ACTIVE, or false if INACTIVE.

See Also

getExtraVisibility

open fun getExtraVisibility(): Int

Returns the visibility of the extra region of the card.

setInfoVisibility

open fun setInfoVisibility(visibility: Int): Unit

Sets the visibility of the info region of the card.

Parameters
visibility Int: The region visibility to use for the info region. Must be one of CARD_REGION_VISIBLE_ALWAYS, CARD_REGION_VISIBLE_SELECTED, or CARD_REGION_VISIBLE_ACTIVATED.

setExtraVisibility

open fun setExtraVisibility(visibility: Int): Unit

Sets the visibility of the extra region of the card.

Parameters
visibility Int: The region visibility to use for the extra region. Must be one of CARD_REGION_VISIBLE_ALWAYS, CARD_REGION_VISIBLE_SELECTED, or CARD_REGION_VISIBLE_ACTIVATED.

isSelectedAnimationDelayed

open fun isSelectedAnimationDelayed(): Boolean

Returns a boolean indicating if the selected animation will run immediately or be delayed the next time the card is Selected.

Return
Boolean: true if this card is set to delay the selected animation the next time it is selected, or false if the selected animation will run immediately the next time the card is selected.

setSelectedAnimationDelayed

open fun setSelectedAnimationDelayed(delay: Boolean): Unit

Sets a flag indicating if the Selected animation (if the selected card type implements one) should run immediately after the card is selected, or if it should be delayed. The default behavior is to delay this animation. This is a one-shot override. If set to false, after the card is selected and the selected animation is triggered, this flag is automatically reset to true. This is useful when you want to change the default behavior, and have the selected animation run immediately. One such case could be when focus moves from one row to the other, when instead of delaying the selected animation until the user pauses on a card, it may be desirable to trigger the animation for that card immediately.

Parameters
delay Boolean: True (default) if the selected animation should be delayed after the card is selected, or false if the animation should run immediately the next time the card is Selected.

getInfoVisibility

open fun getInfoVisibility(): Int

Returns the visibility of the info region of the card.

generateLayoutParams

open fun generateLayoutParams(attrs: AttributeSet!): BaseCardView.LayoutParams!

shouldDelayChildPressedState

open fun shouldDelayChildPressedState(): Boolean

toString

open fun toString(): String

setSelected

open fun setSelected(selected: Boolean): Unit

Sets the Selected state of this Card. This can trigger changes in the card layout, resulting in views to become visible or hidden. A card is normally set to Selected state when it receives input focus.

Parameters
selected Boolean: True if the card is Selected, or false otherwise.

See Also

Protected methods

onCreateDrawableState

protected open fun onCreateDrawableState(extraSpace: Int): IntArray!

checkLayoutParams

protected open fun checkLayoutParams(p: LayoutParams!): Boolean

onDetachedFromWindow

protected open fun onDetachedFromWindow(): Unit

onLayout

protected open fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int): Unit

generateLayoutParams

protected open fun generateLayoutParams(lp: LayoutParams!): BaseCardView.LayoutParams!

onMeasure

protected open fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int): Unit

generateDefaultLayoutParams

protected open fun generateDefaultLayoutParams(): BaseCardView.LayoutParams!