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

WearableDrawerView

open class WearableDrawerView : FrameLayout
kotlin.Any
   ↳ android.view.View
   ↳ android.view.ViewGroup
   ↳ android.widget.FrameLayout
   ↳ androidx.wear.widget.drawer.WearableDrawerView

View that contains drawer content and a peeking view for use with WearableDrawerLayout.

This view provides the ability to set its main content as well as a view shown while peeking. Specifying the peek view is entirely optional; a default is used if none are set. However, the content must be provided.

There are two ways to specify the content and peek views: by invoking setter methods on the WearableDrawerView, or by specifying the app:drawerContent and app:peekView attributes. Examples:

 // From Java: drawerView.setDrawerContent(drawerContentView); drawerView.setPeekContent(peekContentView); <!-- From XML: --> <androidx.wear.widget.drawer.WearableDrawerView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="bottom" android:background="@color/red" app:drawerContent="@+id/drawer_content" app:peekView="@+id/peek_view"> <FrameLayout android:id="@id/drawer_content" android:layout_width="match_parent" android:layout_height="match_parent" /> <LinearLayout android:id="@id/peek_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/ic_media_play" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@android:drawable/ic_media_pause" /> </LinearLayout> </androidx.wear.widget.drawer.WearableDrawerView>

Summary

Constants
static Int

Indicates that the drawer is in an idle, settled state.

static Int

Indicates that the drawer is currently being dragged by the user.

static Int

Indicates that the drawer is in the process of settling to a final position.

Public constructors
<init>(context: Context!)

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

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

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

Public methods
open Unit
addView(child: View!, index: Int, params: LayoutParams!)

open Boolean

Returns true if the position of the drawer cannot be modified by user interaction.

open Boolean

Returns true if this drawer has auto-peeking enabled.

open Unit
setPeekContent(content: View!)

Set the peek content view.

open Unit

Called when anything within the peek container is clicked.

open WearableDrawerController!

Returns the WearableDrawerController associated with this WearableDrawerView.

open Unit

Called when the drawer state changes.

open Boolean

Returns whether this drawer may only be opened by the user when at the top of the scrolling content.

open Unit

Sets whether or not the drawer can automatically adjust its peek state.

open Boolean

Gets whether or not this drawer should peek while scrolling down.

open Boolean

Returns true if this drawer should be locked when the user cannot see it.

open View?

Returns the drawer content view.

open Unit

Sets whether or not the position of the drawer can be modified by user interaction.

open Boolean

Returns true if the drawer is fully open.

open Unit

Called when the drawer has settled in a completely closed state.

open Unit
setDrawerContent(@Nullable content: View?)

Set the drawer content view.

open Int

Returns the current drawer state, which will be one of STATE_DRAGGING, , or STATE_IDLE

open Unit

Sets whether this drawer should be locked when the user cannot see it.

open Boolean

Returns true if the drawer is fully closed.

open Unit

Sets whether or not this drawer should peek while scrolling down.

open Unit

Called when the drawer has settled in a completely open state.

open Boolean

Returns whether the drawer is either peeking or the peek view is animating open.

open Unit

Only allow the user to open this drawer when at the top of the scrolling content.

Protected methods
open Unit

open Unit

Constants

STATE_IDLE

static val STATE_IDLE: Int

Indicates that the drawer is in an idle, settled state. No animation is in progress.

Value: ViewDragHelper.STATE_IDLE

STATE_DRAGGING

static val STATE_DRAGGING: Int

Indicates that the drawer is currently being dragged by the user.

Value: ViewDragHelper.STATE_DRAGGING

STATE_SETTLING

static val STATE_SETTLING: Int

Indicates that the drawer is in the process of settling to a final position.

Value: ViewDragHelper.STATE_SETTLING

Public constructors

<init>

WearableDrawerView(context: Context!)

<init>

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

<init>

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

<init>

WearableDrawerView(context: Context!, attrs: AttributeSet!, defStyleAttr: Int, defStyleRes: Int)

Public methods

addView

open fun addView(child: View!, index: Int, params: LayoutParams!): Unit

isLocked

open fun isLocked(): Boolean

Returns true if the position of the drawer cannot be modified by user interaction. Specifically, a drawer cannot be opened, closed, or automatically peeked by . However, it can be explicitly opened, closed, and peeked by the developer. A drawer may be considered locked if the drawer is locked open, locked closed, or is closed and isLockedWhenClosed returns true.

isAutoPeekEnabled

open fun isAutoPeekEnabled(): Boolean

Returns true if this drawer has auto-peeking enabled. This will always return false for a locked drawer.

setPeekContent

open fun setPeekContent(content: View!): Unit

Set the peek content view.

Parameters
content View!: The view to show when the drawer peeks.

onPeekContainerClicked

open fun onPeekContainerClicked(v: View!): Unit

Called when anything within the peek container is clicked. However, if a custom peek view is supplied and it handles the click, then this may not be called. The default behavior is to open the drawer.

getController

open fun getController(): WearableDrawerController!

Returns the WearableDrawerController associated with this WearableDrawerView. This will only be valid after this View has been added to its parent.

onDrawerStateChanged

open fun onDrawerStateChanged(state: Int): Unit

Called when the drawer state changes. This is analogous to .

Parameters
state Int: one of STATE_DRAGGING, STATE_SETTLING, or STATE_IDLE

isOpenOnlyAtTopEnabled

open fun isOpenOnlyAtTopEnabled(): Boolean

Returns whether this drawer may only be opened by the user when at the top of the scrolling content. If there is no scrolling content, then this has no effect. Defaults to false.

setIsAutoPeekEnabled

open fun setIsAutoPeekEnabled(canAutoPeek: Boolean): Unit

Sets whether or not the drawer can automatically adjust its peek state. Note that locked drawers will never auto-peek, but their isAutoPeekEnabled state will be maintained through a lock/unlock cycle.

isPeekOnScrollDownEnabled

open fun isPeekOnScrollDownEnabled(): Boolean

Gets whether or not this drawer should peek while scrolling down. This is currently only supported for bottom drawers. Defaults to false.

isLockedWhenClosed

open fun isLockedWhenClosed(): Boolean

Returns true if this drawer should be locked when the user cannot see it.

See Also

getDrawerContent

@Nullable open fun getDrawerContent(): View?

Returns the drawer content view.

setIsLocked

open fun setIsLocked(locked: Boolean): Unit

Sets whether or not the position of the drawer can be modified by user interaction.

See Also

isOpened

open fun isOpened(): Boolean

Returns true if the drawer is fully open.

onDrawerClosed

open fun onDrawerClosed(): Unit

Called when the drawer has settled in a completely closed state. This is analogous to .

setDrawerContent

open fun setDrawerContent(@Nullable content: View?): Unit

Set the drawer content view.

Parameters
content View?: The view to show when the drawer is open, or null if it should not open.

getDrawerState

open fun getDrawerState(): Int

Returns the current drawer state, which will be one of STATE_DRAGGING, , or STATE_IDLE

setLockedWhenClosed

open fun setLockedWhenClosed(locked: Boolean): Unit

Sets whether this drawer should be locked when the user cannot see it.

See Also

isClosed

open fun isClosed(): Boolean

Returns true if the drawer is fully closed.

setPeekOnScrollDownEnabled

open fun setPeekOnScrollDownEnabled(peekOnScrollDown: Boolean): Unit

Sets whether or not this drawer should peek while scrolling down. This is currently only supported for bottom drawers. Defaults to false.

onDrawerOpened

open fun onDrawerOpened(): Unit

Called when the drawer has settled in a completely open state. The drawer is interactive at this point. This is analogous to .

isPeeking

open fun isPeeking(): Boolean

Returns whether the drawer is either peeking or the peek view is animating open.

setOpenOnlyAtTopEnabled

open fun setOpenOnlyAtTopEnabled(openOnlyAtTop: Boolean): Unit

Only allow the user to open this drawer when at the top of the scrolling content. If there is no scrolling content, then this has no effect. Defaults to false.

Protected methods

onAttachedToWindow

protected open fun onAttachedToWindow(): Unit

onFinishInflate

protected open fun onFinishInflate(): Unit