Picker


public class Picker extends FrameLayout

Known direct subclasses
DatePicker

DatePicker is a directly subclass of Picker.

PinPicker

Picker subclass for allowing the user to enter a numerical PIN.

TimePicker

TimePicker is a direct subclass of Picker.


Picker is a widget showing multiple customized PickerColumns. The PickerColumns are initialized in setColumns. Call setColumnAt if the column value range or labels change. Call setColumnValue to update the current value of PickerColumn.

Picker has two states and will change height:

  • isActivated is true: Picker shows typically three items vertically (see getActivatedVisibleItemCount}. Columns other than getSelectedColumn still shows one item if the Picker is focused. On a touch screen device, the Picker will not get focus so it always show three items on all columns. On a non-touch device (a TV), the Picker will show three items only on currently activated column. If the Picker has focus, it will intercept DPAD directions and select activated column.
  • isActivated is false: Picker shows one item vertically (see getVisibleItemCount) on all columns. The size of Picker shrinks.

Summary

Nested types

Listener for Picker value changes.

Public constructors

Picker(@NonNull Context context, @Nullable AttributeSet attributeSet)

Creates a Picker widget.

Picker(
    @NonNull Context context,
    @Nullable AttributeSet attrs,
    int defStyleAttr
)

Creates a Picker widget.

Public methods

void

Register a callback to be invoked when the picker's value has changed.

boolean
float

Returns number of visible items showing in a column when it's activated.

@Nullable PickerColumn
getColumnAt(int colIndex)

Get nth PickerColumn.

int

Get number of PickerColumns.

final @LayoutRes int

Classes extending Picker can call setPickerItemLayoutId to supply the Picker's item's layout id

final @IdRes int

Returns the Picker's item's TextView's id from within the layout provided by getPickerItemLayoutId or 0 if the layout provided by getPickerItemLayoutId is a {link TextView}.

int

Get current activated column index.

final CharSequence

This method is deprecated.

Use getSeparators

final @NonNull List<CharSequence>

Returns the list of separators that will be populated between the picker column fields.

float

Returns number of visible items showing in a column when it's not activated.

void
onColumnValueChanged(int columnIndex, int newValue)

Classes extending Picker can override this function to supply the behavior when a list has been scrolled.

void

Remove a previously installed value changed callback

void
requestChildFocus(View child, View focused)
void
setActivated(boolean activated)
void
setActivatedVisibleItemCount(float visiblePickerItems)

Changes number of visible items showing in a column when it's activated.

void
setColumnAt(int columnIndex, @NonNull PickerColumn column)

When column labels change or column range changes, call this function to re-populate the selection list.

void
setColumnValue(int columnIndex, int value, boolean runAnimation)

Manually set current value of a column.

void

Set columns and create Views.

final void
setPickerItemLayoutId(@LayoutRes int pickerItemLayoutId)

Sets the layout to use for picker items.

final void
setPickerItemTextViewId(@IdRes int textViewId)

Sets the Picker's item's TextView's id from within the layout provided by getPickerItemLayoutId or 0 if the layout provided by getPickerItemLayoutId is a {link TextView}.

void
setSelectedColumn(int columnIndex)

Change current selected column.

final void

Sets separator String between Picker columns.

final void

Sets the list of separators that will be populated between the Picker columns.

void
setVisibleItemCount(float pickerItems)

Changes number of visible items showing in a column when it's not activated.

Protected methods

int

Classes extending Picker can choose to override this method to supply the Picker's column's single item height in pixels.

boolean
onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect)

Inherited Constants

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

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 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
boolean
FrameLayout.LayoutParams
FrameLayout.LayoutParams
CharSequence
boolean

This method is deprecated.

boolean
void
onLayout(boolean changed, int left, int top, int right, int bottom)
void
onMeasure(int widthMeasureSpec, int heightMeasureSpec)
void
setForegroundGravity(int foregroundGravity)
void
setMeasureAllChildren(boolean measureAll)
boolean
From android.view.View
void
void
void
ViewPropertyAnimator
void
void
boolean
void
void

This method is deprecated.

void
boolean
boolean
boolean
boolean
boolean
canScrollHorizontally(int direction)
boolean
canScrollVertically(int direction)
final void
void
final void
boolean
void
void
static int
combineMeasuredStates(int curState, int newState)
int
int
int
void
WindowInsets
int
int
int
AccessibilityNodeInfo
void
void

This method is deprecated.

boolean
boolean
dispatchNestedFling(float velocityX, float velocityY, boolean consumed)
boolean
dispatchNestedPreFling(float velocityX, float velocityY)
boolean
dispatchNestedPrePerformAccessibilityAction(
    int action,
    Bundle arguments
)
boolean
dispatchNestedPreScroll(
    int dx,
    int dy,
    int[] consumed,
    int[] offsetInWindow
)
boolean
dispatchNestedScroll(
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed,
    int[] offsetInWindow
)
boolean
void
draw(Canvas canvas)
void
drawableHotspotChanged(float x, float y)
final OnBackInvokedDispatcher
final T
<T extends View> findViewById(int id)
final T
<T extends View> findViewWithTag(Object tag)
boolean

This method is deprecated.

void
forceHasOverlappingRendering(boolean hasOverlappingRendering)
void
void
generateDisplayHash(
    String hashAlgorithm,
    Rect bounds,
    Executor executor,
    DisplayHashResultCallback callback
)
static int
View.AccessibilityDelegate
int
AccessibilityNodeProvider
CharSequence
int
int
String
String
float
Animation
Matrix
IBinder
int[]
Map<IntegerInteger>
String[]
final AutofillId
int
AutofillValue
Drawable
BlendMode
ColorStateList
PorterDuff.Mode
int
final int
float
int
float
Rect
boolean
final boolean
final ContentCaptureSession
CharSequence
final Context
ContextMenu.ContextMenuInfo
final boolean
static int
getDefaultSize(int size, int measureSpec)
Display
final int[]
Bitmap

This method is deprecated.

int

This method is deprecated.

int

This method is deprecated.

void
long
float
int
boolean
boolean
int
ArrayList<View>
getFocusables(int direction)
void
Drawable
int
BlendMode
ColorStateList
PorterDuff.Mode
boolean
getGlobalVisibleRect(Rect r, Point globalOffset)
Handler
float
float
float
float
Runnable
final boolean
final int
void
getHitRect(Rect outRect)
int
int
Drawable
Drawable
int
int
int
int
boolean
KeyEvent.DispatcherState
int
int
int
ViewGroup.LayoutParams
final int
float
int
final boolean
void
getLocationInSurface(int[] location)
void
getLocationInWindow(int[] outLocation)
void
getLocationOnScreen(int[] outLocation)
Matrix
final int
final int
final int
final int
final int