Most visited

Recently visited

Added in API level 1

GridView

public class GridView
extends AbsListView

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.AdapterView<android.widget.ListAdapter>
         ↳ android.widget.AbsListView
           ↳ android.widget.GridView


显示二维滚动网格中的项目的视图。 网格中的项目来自与此视图相关的ListAdapter

请参阅 Grid View指南。

Summary

XML attributes

android:columnWidth Specifies the fixed width for each column. 
android:gravity Specifies the gravity within each cell. 
android:horizontalSpacing Defines the default horizontal spacing between columns. 
android:numColumns Defines how many columns to show. 
android:stretchMode Defines how columns should stretch to fill the available empty space, if any. 
android:verticalSpacing Defines the default vertical spacing between rows. 

Inherited XML attributes

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

Constants

int AUTO_FIT

在屏幕上创建尽可能多的列。

int NO_STRETCH

禁用拉伸。

int STRETCH_COLUMN_WIDTH

拉伸列。

int STRETCH_SPACING

拉伸列之间的间距。

int STRETCH_SPACING_UNIFORM

拉伸列之间的间距。

Inherited constants

From class android.widget.AbsListView
From class android.widget.AdapterView
From class android.view.ViewGroup
From class android.view.View

Inherited fields

From class android.view.View

Public constructors

GridView(Context context)
GridView(Context context, AttributeSet attrs)
GridView(Context context, AttributeSet attrs, int defStyleAttr)
GridView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Public methods

CharSequence getAccessibilityClassName()

返回此对象的类名称以用于辅助功能。

ListAdapter getAdapter()

返回当前与此小部件关联的适配器。

int getColumnWidth()

返回网格中列的宽度。

int getGravity()

介绍子视图如何水平对齐。

int getHorizontalSpacing()

返回网格中每个项目之间当前使用的水平间距的数量。

int getNumColumns()

获取网格中的列数。

int getRequestedColumnWidth()

返回网格中列的请求宽度。

int getRequestedHorizontalSpacing()

返回网格中每个项目之间所请求的水平间距。

int getStretchMode()
int getVerticalSpacing()

返回网格中每个项目之间的垂直间距量。

void onInitializeAccessibilityNodeInfoForItem(View view, int position, AccessibilityNodeInfo info)

使用有关列表中特定项目的信息初始化 AccessibilityNodeInfo

boolean onKeyDown(int keyCode, KeyEvent event)

KeyEvent.Callback.onKeyDown()默认实现:当 KEYCODE_DPAD_CENTERKEYCODE_ENTER被释放时,如果视图已启用并且可点击,则执行按下视图。

boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)

默认实现 KeyEvent.Callback.onKeyMultiple() :始终返回false(不处理事件)。

boolean onKeyUp(int keyCode, KeyEvent event)

的默认实现 KeyEvent.Callback.onKeyUp() :当视图进行点击 KEYCODE_DPAD_CENTERKEYCODE_ENTER或者 KEYCODE_SPACE被释放。

void setAdapter(ListAdapter adapter)

设置此GridView后面的数据。

void setColumnWidth(int columnWidth)

设置网格中列的宽度。

void setGravity(int gravity)

为此网格设置重力。

void setHorizontalSpacing(int horizontalSpacing)

设置网格中每个项目之间放置的水平(x)间距的数量。

void setNumColumns(int numColumns)

设置网格中的列数

void setRemoteViewsAdapter(Intent intent)

设置此AbsListView以使用通过指定意图连接到RemoteViewsService的远程视图适配器。

void setSelection(int position)

设置当前选择的项目

void setStretchMode(int stretchMode)

控制项目如何拉伸以填充空间。

void setVerticalSpacing(int verticalSpacing)

设置网格中每个项目之间的垂直(y)间距的数量。

void smoothScrollByOffset(int offset)

平滑地滚动到指定的适配器位置偏移量。

void smoothScrollToPosition(int position)

平滑地滚动到指定的适配器位置。

Protected methods

void attachLayoutAnimationParameters(View child, ViewGroup.LayoutParams params, int index, int count)

子类应该重写此方法以在提供的子级上设置布局动画参数。

int computeVerticalScrollExtent()

计算垂直滚动条拇指在垂直范围内的垂直范围。

int computeVerticalScrollOffset()

计算垂直滚动条拇指在水平范围内的垂直偏移量。

int computeVerticalScrollRange()

计算垂直滚动条代表的垂直范围。

void layoutChildren()

子类必须重写此方法来布局他们的子项。

void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect)

当视图的焦点状态改变时,由视图系统调用。

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。

Inherited methods

From class android.widget.AbsListView
From class android.widget.AdapterView
From class android.view.ViewGroup
From class android.view.View
From class java.lang.Object
From interface android.text.TextWatcher
From interface android.view.ViewTreeObserver.OnGlobalLayoutListener
From interface android.widget.Filter.FilterListener
From interface android.view.ViewTreeObserver.OnTouchModeChangeListener
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

XML attributes

android:columnWidth

指定每列的固定宽度。

必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 columnWidth

相关方法:

android:gravity

指定每个单元格内的重力。

必须是以下常量值中的一个或多个(用'|'分隔)。

Constant Value 描述
top 0x30 Push object to the top of its container, not changing its size.
bottom 0x50 Push object to the bottom of its container, not changing its size.
left 0x03 Push object to the left of its container, not changing its size.
right 0x05 Push object to the right of its container, not changing its size.
center_vertical 0x10 Place object in the vertical center of its container, not changing its size.
fill_vertical 0x70 Grow the vertical size of the object if needed so it completely fills its container.
center_horizontal 0x01 Place object in the horizontal center of its container, not changing its size.
fill_horizontal 0x07 Grow the horizontal size of the object if needed so it completely fills its container.
center 0x11 Place the object in the center of its container in both the vertical and horizontal axis, not changing its size.
fill 0x77 Grow the horizontal and vertical size of the object if needed so it completely fills its container.
clip_vertical 0x80 Additional option that can be set to have the top and/or bottom edges of the child clipped to its container's bounds. The clip will be based on the vertical gravity: a top gravity will clip the bottom edge, a bottom gravity will clip the top edge, and neither will clip both edges.
clip_horizontal 0x08 Additional option that can be set to have the left and/or right edges of the child clipped to its container's bounds. The clip will be based on the horizontal gravity: a left gravity will clip the right edge, a right gravity will clip the left edge, and neither will clip both edges.
start 0x00800003 Push object to the beginning of its container, not changing its size.
end 0x00800005 Push object to the end of its container, not changing its size.

这对应于全局属性资源符号 gravity

相关方法:

android:horizontalSpacing

定义列之间的默认水平间距。

必须是维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(格式为“ @[package:]type:name ”)或主题属性(格式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 horizontalSpacing

相关方法:

android:numColumns

定义显示多少个列。

可能是一个整数值,如“ 100 ”。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

可能是以下常数值之一。

Constant Value 描述
auto_fit -1 Display as many columns as possible to fill the available space.

这对应于全局属性资源符号 numColumns

相关方法:

android:stretchMode

定义列应该如何拉伸以填充可用的空白空间(如果有)。

必须是下列常数值之一。

Constant Value 描述
none 0 Stretching is disabled.
spacingWidth 1 The spacing between each column is stretched.
columnWidth 2 Each column is stretched equally.
spacingWidthUniform 3 The spacing between each column is uniformly stretched..

这对应于全局属性资源符号 stretchMode

相关方法:

android:verticalSpacing

定义行之间的默认垂直间距。

必须是一个维度值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp ”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸,毫米(毫米)。

这也可能是对包含此类型值的资源(形式为“ @[package:]type:name ”)或主题属性(形式为“ ?[package:][type:]name ”)的 ?[package:][type:]name

这对应于全局属性资源符号 verticalSpacing

相关方法:

Constants

AUTO_FIT

Added in API level 1
int AUTO_FIT

在屏幕上创建尽可能多的列。

也可以看看:

常量值:-1(0xffffffff)

NO_STRETCH

Added in API level 1
int NO_STRETCH

禁用拉伸。

也可以看看:

常量值:0(0x00000000)

STRETCH_COLUMN_WIDTH

Added in API level 1
int STRETCH_COLUMN_WIDTH

拉伸列。

也可以看看:

常量值:2(0x00000002)

STRETCH_SPACING

Added in API level 1
int STRETCH_SPACING

拉伸列之间的间距。

也可以看看:

常数值:1(0x00000001)

STRETCH_SPACING_UNIFORM

Added in API level 3
int STRETCH_SPACING_UNIFORM

拉伸列之间的间距。 间距是一致的。

也可以看看:

常量值:3(0x00000003)

Public constructors

GridView

Added in API level 1
GridView (Context context)

Parameters
context Context

GridView

Added in API level 1
GridView (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

GridView

Added in API level 1
GridView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

GridView

Added in API level 21
GridView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName

Returns
CharSequence

getAdapter

Added in API level 1
ListAdapter getAdapter ()

返回当前与此小部件关联的适配器。

Returns
ListAdapter The adapter used to provide this view's content.

getColumnWidth

Added in API level 16
int getColumnWidth ()

返回网格中列的宽度。

如果布局未决,这可能无效。

相关XML属性:

Returns
int The column width in pixels

也可以看看:

getGravity

Added in API level 16
int getGravity ()

介绍子视图如何水平对齐。 默认为Gravity.LEFT

相关XML属性:

Returns
int the gravity that will be applied to this grid's children

getHorizontalSpacing

Added in API level 16
int getHorizontalSpacing ()

返回网格中每个项目之间当前使用的水平间距的数量。

这仅适用于当前布局。 如果setHorizontalSpacing(int)已被调用,但布局尚未完成,则此方法可能会返回陈旧值。 要获得明确请求的水平间距,请使用getRequestedHorizontalSpacing()

相关XML属性:

Returns
int Current horizontal spacing between each item in pixels

也可以看看:

getNumColumns

Added in API level 11
int getNumColumns ()

获取网格中的列数。 如果网格从未布局,则返回AUTO_FIT

相关XML属性:

Returns
int

也可以看看:

getRequestedColumnWidth

Added in API level 16
int getRequestedColumnWidth ()

返回网格中列的请求宽度。

这可能不是实际使用的列宽。 使用getColumnWidth()检索列的当前实际宽度。

相关XML属性:

Returns
int The requested column width in pixels

也可以看看:

getRequestedHorizontalSpacing

Added in API level 16
int getRequestedHorizontalSpacing ()

返回网格中每个项目之间所请求的水平间距。

返回的值可能在通货膨胀期间作为样式的一部分提供,默认GridView样式或致电setHorizontalSpacing(int) 如果布局尚未完成,或者GridView计算出与请求不同的水平间距,则可能返回与getHorizontalSpacing()不同的值。

相关XML属性:

Returns
int The currently requested horizontal spacing between items, in pixels

也可以看看:

getStretchMode

Added in API level 1
int getStretchMode ()

Returns
int

getVerticalSpacing

Added in API level 16
int getVerticalSpacing ()

返回网格中每个项目之间的垂直间距量。

相关XML属性:

Returns
int The vertical spacing between items in pixels

也可以看看:

onInitializeAccessibilityNodeInfoForItem

Added in API level 19
void onInitializeAccessibilityNodeInfoForItem (View view, 
                int position, 
                AccessibilityNodeInfo info)

用关于列表中特定项目的信息初始化 AccessibilityNodeInfo

Parameters
view View: View representing the list item.
position int: Position of the list item within the adapter.
info AccessibilityNodeInfo: Node info to populate.

onKeyDown

Added in API level 1
boolean onKeyDown (int keyCode, 
                KeyEvent event)

KeyEvent.Callback.onKeyDown()默认实现:当 KEYCODE_DPAD_CENTERKEYCODE_ENTER被释放时,如果视图被启用并且可点击,则执行按下视图。

软件键盘中的按键通常不会触发这个监听器,尽管在某些情况下有些人会选择这样做。 不要依靠这个来捕捉软件按键。

Parameters
keyCode int: a key code that represents the button pressed, from KeyEvent
event KeyEvent: the KeyEvent object that defines the button action
Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onKeyMultiple

Added in API level 1
boolean onKeyMultiple (int keyCode, 
                int repeatCount, 
                KeyEvent event)

默认实现 KeyEvent.Callback.onKeyMultiple() :始终返回false(不处理事件)。

软件键盘中的按键通常不会触发这个监听器,尽管在某些情况下有些人会选择这样做。 不要依靠这个来捕捉软件按键。

Parameters
keyCode int: A key code that represents the button pressed, from KeyEvent.
repeatCount int: The number of times the action was made.
event KeyEvent: The KeyEvent object that defines the button action.
Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

onKeyUp

Added in API level 1
boolean onKeyUp (int keyCode, 
                KeyEvent event)

的默认实现 KeyEvent.Callback.onKeyUp() :当视图进行点击 KEYCODE_DPAD_CENTERKEYCODE_ENTER或者 KEYCODE_SPACE被释放。

软件键盘中的按键通常不会触发这个监听器,尽管在某些情况下有些人会选择这样做。 不要依靠这个来捕捉软件按键。

Parameters
keyCode int: A key code that represents the button pressed, from KeyEvent.
event KeyEvent: The KeyEvent object that defines the button action.
Returns
boolean If you handled the event, return true. If you want to allow the event to be handled by the next receiver, return false.

setAdapter

Added in API level 1
void setAdapter (ListAdapter adapter)

设置此GridView后面的数据。

Parameters
adapter ListAdapter: the adapter providing the grid's data

setColumnWidth

Added in API level 1
void setColumnWidth (int columnWidth)

设置网格中列的宽度。

相关XML属性:

Parameters
columnWidth int: The column width, in pixels.

setGravity

Added in API level 1
void setGravity (int gravity)

为此网格设置重力。 重力描述了子视图如何水平对齐。 默认为Gravity.LEFT

相关XML属性:

Parameters
gravity int: the gravity to apply to this grid's children

setHorizontalSpacing

Added in API level 1
void setHorizontalSpacing (int horizontalSpacing)

设置网格中每个项目之间放置的水平(x)间距的数量。

相关XML属性:

Parameters
horizontalSpacing int: The amount of horizontal space between items, in pixels.

setNumColumns

Added in API level 1
void setNumColumns (int numColumns)

设置网格中的列数

相关XML属性:

Parameters
numColumns int: The desired number of columns.

setRemoteViewsAdapter

Added in API level 11
void setRemoteViewsAdapter (Intent intent)

设置此AbsListView以使用通过指定意图连接到RemoteViewsService的远程视图适配器。

Parameters
intent Intent: the intent used to identify the RemoteViewsService for the adapter to connect to.

setSelection

Added in API level 1
void setSelection (int position)

设置当前选择的项目

Parameters
position int: Index (starting at 0) of the data item to be selected. If in touch mode, the item will not be selected but it will still be positioned appropriately.

setStretchMode

Added in API level 1
void setStretchMode (int stretchMode)

控制项目如何拉伸以填充空间。

相关XML属性:

Parameters
stretchMode int: Either NO_STRETCH, STRETCH_SPACING, STRETCH_SPACING_UNIFORM, or STRETCH_COLUMN_WIDTH.

setVerticalSpacing

Added in API level 1
void setVerticalSpacing (int verticalSpacing)

设置网格中每个项目之间的垂直(y)间距的数量。

相关XML属性:

Parameters
verticalSpacing int: The amount of vertical space between items, in pixels.

也可以看看:

smoothScrollByOffset

Added in API level 11
void smoothScrollByOffset (int offset)

平滑地滚动到指定的适配器位置偏移量。 视图将滚动显示指定的位置。

Parameters
offset int: The amount to offset from the adapter position to scroll to.

smoothScrollToPosition

Added in API level 8
void smoothScrollToPosition (int position)

平滑地滚动到指定的适配器位置。 视图将滚动显示指定的位置。

Parameters
position int: Scroll to this adapter position.

Protected methods

attachLayoutAnimationParameters

Added in API level 1
void attachLayoutAnimationParameters (View child, 
                ViewGroup.LayoutParams params, 
                int index, 
                int count)

子类应该重写此方法以在提供的子级上设置布局动画参数。

Parameters
child View: the child to associate with animation parameters
params ViewGroup.LayoutParams: the child's layout parameters which hold the animation parameters
index int: the index of the child in the view group
count int: the number of children in the view group

computeVerticalScrollExtent

Added in API level 1
int computeVerticalScrollExtent ()

计算垂直滚动条拇指在垂直范围内的垂直范围。 该值用于计算滚动条轨道内的拇指长度。

范围以任意单位表示,必须与 computeVerticalScrollRange()computeVerticalScrollOffset()使用的单位相同。

默认范围是此视图的绘图高度。

Returns
int the vertical extent of the scrollbar's thumb

computeVerticalScrollOffset

Added in API level 1
int computeVerticalScrollOffset ()

计算垂直滚动条拇指在水平范围内的垂直偏移量。 该值用于计算滚动条轨道内的拇指位置。

范围以任意单位表示,必须与 computeVerticalScrollRange()computeVerticalScrollExtent()所使用的单位相同。

默认偏移量是该视图的滚动偏移量。

Returns
int the vertical offset of the scrollbar's thumb

computeVerticalScrollRange

Added in API level 1
int computeVerticalScrollRange ()

计算垂直滚动条代表的垂直范围。

范围以任意单位表示,必须与 computeVerticalScrollExtent()computeVerticalScrollOffset()使用的单位相同。

Returns
int the total vertical range represented by the vertical scrollbar

默认范围是此视图的绘图高度。

layoutChildren

Added in API level 1
void layoutChildren ()

子类必须重写此方法来布局他们的子项。

onFocusChanged

Added in API level 1
void onFocusChanged (boolean gainFocus, 
                int direction, 
                Rect previouslyFocusedRect)

当视图的焦点状态改变时,由视图系统调用。 当焦点更改事件是由方向导航导致的,direction和previouslyFocusedRect提供了焦点来自何处的洞察。 重写时,一定要调用超类,以便进行标准的焦点处理。

Parameters
gainFocus boolean: True if the View has focus; false otherwise.
direction int: The direction focus has moved when requestFocus() is called to give this view focus. Values are FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_FORWARD, or FOCUS_BACKWARD. It may not always apply, in which case use the default.
previouslyFocusedRect Rect: The rectangle, in this view's coordinate system, of the previously focused view. If applicable, this will be passed in as finer grained information about where the focus is coming from (in addition to direction). Will be null otherwise.

onMeasure

Added in API level 1
void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用, measure(int, int)子类覆盖以提供其内容的准确和有效的度量。

合同:覆盖此方法时, 必须致电setMeasuredDimension(int, int)以存储此视图的测量宽度和高度。 如果不这样做,将触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一种有效的用法。

Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应覆盖onMeasure(int, int)以提供更好的内容度量。

如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()getSuggestedMinimumWidth() )。

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

Hooray!