LeanbackTabLayout


public class LeanbackTabLayout extends TabLayout


TabLayout with some specific customizations related to focus navigation for TV to be used as top navigation bar. The following modifications have been done on the TabLayout:

  • When the focused tab changes the viewpager is also update accordingly. With the default behavior the viewpager is updated only when tab is clicked.
  • Default behaviour is that focus moves to the tab closest to the last focused item inside viewpager on DPAD_UP. With the current change the selected tab gets the focus.
  • Allowing change of current tab only when focus changes from an adjacent tab to current tab or focus changes from an element outside viewpager/tablayout to the viewpager/tablayout. This prevents change of tabs on DPAD_LEFT on the leftmost element inside viewpager and DPAD_RIGHT on the rightmost element inside viewpager.

ViewPager can be used with this class but some of the behaviour of ViewPager might not be suitable for TV usage. Refer LeanbackViewPager for the modifications done on ViewPager.

Summary

Public constructors

Constructs LeanbackTabLayout

Constructs LeanbackTabLayout

LeanbackTabLayout(
    @NonNull Context context,
    @NonNull AttributeSet attrs,
    int defStyleAttr
)

Constructs LeanbackTabLayout

Public methods

void
addFocusables(
    @NonNull ArrayList<View> views,
    int direction,
    int focusableMode
)
void

Protected methods

void
onLayout(boolean changed, int left, int top, int right, int bottom)

Inherited Constants

From com.google.android.material.tabs.TabLayout
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
From android.view.View
static final int
static final int
static final int
static final int
static final int
static final int
static final Property<ViewFloat>
static final int
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE = "creditCardExpirationDate"
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY = "creditCardExpirationDay"
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH = "creditCardExpirationMonth"
static final String
AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR = "creditCardExpirationYear"
static final String
static final String
AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE = "creditCardSecurityCode"
static final String
static final String
static final String
static final String
static final String
static final String
static final String
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int
static final int
static final int
static final int
static final int
static final int
static final int[]
static final int[]
static final int[]
static final int[]
static final int
static final int
static final int
static final int
static final int
static final int
static final int
GONE = 8
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
KEEP_SCREEN_ON = 67108864
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
NO_ID = -1
static final int
static final int
static final int
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final int[]
static final float
static final float
static final float
static final float
static final float
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int[]
static final int[]
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final int
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
static final String
VIEW_LOG_TAG = "View"
static final int
static final int[]
static final Property<ViewFloat>
static final Property<ViewFloat>
static final Property<ViewFloat>
From android.view.ViewGroup
static final int
static final int
static final int
static final int
static final int
static final int
static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

static final int

This field is deprecated.

Inherited methods

From android.widget.FrameLayout
From android.widget.HorizontalScrollView
boolean
arrowScroll(int direction)
int
int
void
int
boolean
void
draw(Canvas canvas)
boolean
void
fling(int velocityX)
boolean
fullScroll(int direction)
CharSequence
int
float
int
int
float
boolean
boolean
void
measureChild(
    View child,
    int parentWidthMeasureSpec,
    int parentHeightMeasureSpec
)
void
measureChildWithMargins(
    View child,
    int parentWidthMeasureSpec,
    int widthUsed,
    int parentHeightMeasureSpec,
    int heightUsed
)
boolean
boolean
void
onOverScrolled(
    int scrollX,
    int scrollY,
    boolean clampedX,
    boolean clampedY
)
boolean
onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect)
void
Parcelable
void
onSizeChanged(int w, int h, int oldw, int oldh)
boolean
boolean
pageScroll(int direction)
void
requestChildFocus(View child, View focused)
boolean
requestChildRectangleOnScreen(
    View child,
    Rect rectangle,
    boolean immediate
)
void
requestDisallowInterceptTouchEvent(boolean disallowIntercept)
void
void
scrollTo(int x, int y)
void
setEdgeEffectColor(int color)
void
setFillViewport(boolean fillViewport)
void
void
void
setSmoothScrollingEnabled(boolean smoothScrollingEnabled)
final void
smoothScrollBy(int dx, int dy)
final void
smoothScrollTo(int x, int y)
From com.google.android.material.tabs.TabLayout