Most visited

Recently visited

Picker

public class Picker
extends FrameLayout

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.FrameLayout
         ↳ android.support.v17.leanback.widget.picker.Picker


Picker是一个显示多个定制PickerColumn的小部件。 PickerColumns在setColumns(List)中初始化。 如果列值范围或标签更改,请致电setColumnAt(int, PickerColumn) 调用setColumnValue(int, int, boolean)来更新setColumnValue(int, int, boolean)的当前值。

Picker有两个状态,并且会改变高度:

  • 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 classes

    interface Picker.PickerValueListener

     

    Inherited XML attributes

    From class android.widget.FrameLayout
    From class android.view.ViewGroup
    From class android.view.View

    Inherited constants

    From class android.view.ViewGroup
    From class android.view.View

    Inherited fields

    From class android.view.View

    Public constructors

    Picker(Context context, AttributeSet attrs, int defStyleAttr)

    创建一个Picker小部件。

    Public methods

    void addOnValueChangedListener(Picker.PickerValueListener listener)

    注册一个回调,当选择器的值发生变化时被调用。

    boolean dispatchKeyEvent(KeyEvent event)

    将关键事件分派到焦点路径上的下一个视图。

    float getActivatedVisibleItemCount()

    返回激活时显示在列中的可见项目的数量。

    PickerColumn getColumnAt(int colIndex)

    获得第n个PickerColumn。

    int getColumnsCount()

    获取PickerColumns的数量。

    final int getPickerItemLayoutId()

    延伸 Picker类可以选择覆盖此方法以提供 Picker的项目布局ID

    final int getPickerItemTextViewId()

    返回 Picker的项目的 TextView从所提供的布局中的编号 getPickerItemLayoutId()或0,如果所提供的布局 getPickerItemLayoutId()是{TextView的链接}。

    int getSelectedColumn()

    获取当前激活的列索引。

    final CharSequence getSeparator()

    获取列之间的分隔符字符串。

    float getVisibleItemCount()

    未激活时,返回列中显示的可见项目的数量。

    void onColumnValueChanged(int columnIndex, int newValue)

    扩展 Picker类可以重写此函数以提供滚动列表时的行为。

    void removeOnValueChangedListener(Picker.PickerValueListener listener)

    删除以前安装的值已更改的回调

    void requestChildFocus(View child, View focused)

    当这个父母的孩子需要关注时调用

    void setActivated(boolean activated)

    更改此视图的激活状态。

    void setActivatedVisibleItemCount(float visiblePickerItems)

    更改激活时列中显示的可见项目的数量。

    void setColumnAt(int columnIndex, PickerColumn column)

    当列标签更改或列范围更改时,请调用此函数重新填充选择列表。

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

    手动设置列的当前值。

    void setColumns(List<PickerColumn> columns)

    设置列并创建视图。

    final void setPickerItemTextViewId(int textViewId)

    如果由 getPickerItemLayoutId()提供的布局是{link TextView},则在 getPickerItemLayoutId()提供的布局内设置 Picker的项目 TextView的ID,如果布局由 getPickerItemLayoutId()提供,则设置为0。

    void setSelectedColumn(int columnIndex)

    更改当前选定的列。

    final void setSeparator(CharSequence seperator)

    在拾取器列之间设置分隔符字符串。

    void setVisibleItemCount(float pickerItems)

    未激活时,更改列中显示的可见项目的数量。

    Protected methods

    int getPickerItemHeightPixels()

    延伸 Picker类可以选择覆盖此方法以像素为单位提供 Picker列的单个项目高度。

    boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect)

    找一个后裔打电话给 requestFocus()

    Inherited methods

    From class android.widget.FrameLayout
    From class android.view.ViewGroup
    From class android.view.View
    From class java.lang.Object
    From interface android.view.ViewParent
    From interface android.view.ViewManager
    From interface android.graphics.drawable.Drawable.Callback
    From interface android.view.KeyEvent.Callback
    From interface android.view.accessibility.AccessibilityEventSource

    Public constructors

    Picker

    Picker (Context context, 
                    AttributeSet attrs, 
                    int defStyleAttr)

    创建一个Picker小部件。

    Public methods

    addOnValueChangedListener

    void addOnValueChangedListener (Picker.PickerValueListener listener)

    注册一个回调,当选择器的值发生变化时被调用。

    Parameters
    listener Picker.PickerValueListener: The callback to ad

    dispatchKeyEvent

    boolean dispatchKeyEvent (KeyEvent event)

    将关键事件分派到焦点路径上的下一个视图。 此路径从视图树的顶部向下延伸到当前聚焦的视图。 如果这个观点有重点,它会发送给自己。 否则,它将沿着焦点路径调度下一个节点。 这个方法也会触发任何关键的监听器。

    Parameters
    event KeyEvent: The key event to be dispatched.
    Returns
    boolean True if the event was handled, false otherwise.

    getActivatedVisibleItemCount

    float getActivatedVisibleItemCount ()

    返回激活时显示在列中的可见项目的数量。 默认值是3。

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

    getColumnAt

    PickerColumn getColumnAt (int colIndex)

    获得第n个PickerColumn。

    Parameters
    colIndex int: Index of PickerColumn.
    Returns
    PickerColumn PickerColumn at colIndex or null if setColumns(List) is not called yet.

    getColumnsCount

    int getColumnsCount ()

    获取PickerColumns的数量。

    Returns
    int Number of PickerColumns or 0 if setColumns(List) is not called yet.

    getPickerItemLayoutId

    int getPickerItemLayoutId ()

    延伸 Picker类可以选择覆盖此方法以提供 Picker的项目布局ID

    Returns
    int

    getPickerItemTextViewId

    int getPickerItemTextViewId ()

    返回 Picker的项目的 TextView从所提供的布局中的编号 getPickerItemLayoutId()或0,如果所提供的布局 getPickerItemLayoutId()是{TextView的链接}。

    Returns
    int

    getSelectedColumn

    int getSelectedColumn ()

    获取当前激活的列索引。

    Returns
    int Current activated column index.

    getSeparator

    CharSequence getSeparator ()

    获取列之间的分隔符字符串。

    Returns
    CharSequence

    getVisibleItemCount

    float getVisibleItemCount ()

    未激活时,返回列中显示的可见项目的数量。 默认值是1。

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

    onColumnValueChanged

    void onColumnValueChanged (int columnIndex, 
                    int newValue)

    扩展Picker类可以重写此函数以提供滚动列表时的行为。 子类可能会调用setColumnValue(int, int, boolean)和或setColumnAt(int, PickerColumn) 子类不应直接调用不更新内部状态或通知侦听器的setCurrentValue(int)

    Parameters
    columnIndex int: index of which column was changed.
    newValue int: A new value desired to be set on the column.

    removeOnValueChangedListener

    void removeOnValueChangedListener (Picker.PickerValueListener listener)

    删除以前安装的值已更改的回调

    Parameters
    listener Picker.PickerValueListener: The callback to remove.

    requestChildFocus

    void requestChildFocus (View child, 
                    View focused)

    当这个父母的孩子需要关注时调用

    Parameters
    child View: The child of this ViewParent that wants focus. This view will contain the focused view. It is not necessarily the view that actually has focus.
    focused View: The view that is a descendant of child that actually has focus

    setActivated

    void setActivated (boolean activated)

    更改此视图的激活状态。 视图可以被激活或不被激活。 请注意,激活与选择不同。 选择是一个瞬态属性,表示用户当前正在与之交互的视图(层次结构)。 激活是用户可以将视图移入和移出的较长期状态。 例如,在启用单个或多个选择的列表视图中,激活当前选择集中的视图。 (嗯,是的,我们对此处的术语深表遗憾。)激活的状态传播到它所设置的视图的子节点。

    Parameters
    activated boolean: true if the view must be activated, false otherwise

    setActivatedVisibleItemCount

    void setActivatedVisibleItemCount (float visiblePickerItems)

    更改激活时列中显示的可见项目的数量。 默认值是3。

    Parameters
    visiblePickerItems float: Number of visible items showing in a column when it's activated.

    setColumnAt

    void setColumnAt (int columnIndex, 
                    PickerColumn column)

    当列标签更改或列范围更改时,请调用此函数重新填充选择列表。 请注意,此功能无法从RecyclerView布局/滚动调用中调用。

    Parameters
    columnIndex int: Index of column to update.
    column PickerColumn: New column to update.

    setColumnValue

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

    手动设置列的当前值。 该函数将更新UI并通知侦听器。

    Parameters
    columnIndex int: Index of column to update.
    value int: New value of the column.
    runAnimation boolean: True to scroll to the value or false otherwise.

    setColumns

    void setColumns (List<PickerColumn> columns)

    设置列并创建视图。

    Parameters
    columns List: PickerColumns to be shown in the Picker.

    setPickerItemTextViewId

    void setPickerItemTextViewId (int textViewId)

    如果由 getPickerItemLayoutId()提供的布局是{link TextView},则在由 getPickerItemLayoutId()提供的布局内设置 Picker的项目 TextView的ID,如果布局由 getPickerItemLayoutId()提供,则设置为0。

    Parameters
    textViewId int: View id of TextView inside a Picker item, or 0 if the Picker item is a TextView.

    setSelectedColumn

    void setSelectedColumn (int columnIndex)

    更改当前选定的列。 如果选择器具有焦点,选取器会在选定的列上显示多个项目。 Picker在所有列中显示多个项目(如果Picker没有焦点)(例如触摸屏幕)。

    Parameters
    columnIndex int: Index of column to activate.

    setSeparator

    void setSeparator (CharSequence seperator)

    在拾取器列之间设置分隔符字符串。

    Parameters
    seperator CharSequence: Separator String between Picker columns.

    setVisibleItemCount

    void setVisibleItemCount (float pickerItems)

    未激活时,更改列中显示的可见项目的数量。 默认值是1。

    Parameters
    pickerItems float: Number of visible items showing in a column when it's not activated.

    Protected methods

    getPickerItemHeightPixels

    int getPickerItemHeightPixels ()

    延伸 Picker类可以选择重写此方法,以像素为单位提供 Picker列的单个项目高度。

    Returns
    int

    onRequestFocusInDescendants

    boolean onRequestFocusInDescendants (int direction, 
                    Rect previouslyFocusedRect)

    找一个后裔打电话给requestFocus() 当它想要在其子女内请求焦点时由requestFocus(int, android.graphics.Rect)调用。 重写此设置可以自定义您的ViewGroup请求中ViewGroup请求的重点。

    Parameters
    direction int: One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
    previouslyFocusedRect Rect: The rectangle (in this View's coordinate system) to give a finer grained hint about where focus is coming from. May be null if there is no hint.
    Returns
    boolean Whether focus was taken.
  • Hooray!