Most visited

Recently visited

Added in API level 14

GridLayout

public class GridLayout
extends ViewGroup

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.GridLayout


将子项放置在矩形 网格中的布局。

网格由一组无限细线组成,这些线将观看区域分隔成多个单元格 在整个API中,网格线被网格索引引用。 具有N列的网格具有从0N含)的N + 1网格索引。 无论如何配置GridLayout,网格索引0都固定到容器的N ,网格索引N固定在其后端(考虑填充后)。

Row and Column Specs

Children occupy one or more contiguous cells, as defined by their rowSpec and columnSpec layout parameters. Each spec defines the set of rows or columns that are to be occupied; and how children should be aligned within the resulting group of cells. Although cells do not normally overlap in a GridLayout, GridLayout does not prevent children being defined to occupy the same cell or group of cells. In this case however, there is no guarantee that children will not themselves overlap after the layout operation completes.

Default Cell Assignment

If a child does not specify the row and column indices of the cell it wishes to occupy, GridLayout assigns cell locations automatically using its: orientation, rowCount and columnCount properties.

Space

Space between children may be specified either by using instances of the dedicated Space view or by setting the leftMargin, topMargin, rightMargin and bottomMargin layout parameters. When the useDefaultMargins property is set, default margins around children are automatically allocated based on the prevailing UI style guide for the platform. Each of the margins so defined may be independently overridden by an assignment to the appropriate layout parameter. Default values will generally produce a reasonable spacing between components but values may change between different releases of the platform.

Excess Space Distribution

As of API 21, GridLayout's distribution of excess space accomodates the principle of weight. In the event that no weights are specified, the previous conventions are respected and columns and rows are taken as flexible if their views specify some form of alignment within their groups.

因此,视图的柔性通过其,反过来,通常通过设置限定其取向影响gravity孩子的布局参数的属性。 如果沿给定轴定义重量或对齐方式,则该部件在该方向上被视为灵活 如果没有设置重量或对齐方式,则该组件被假定为不灵活

同一行或列组中的多个组件被认为是并行工作的 只有组件内的所有组件都是灵活的,这样的组才是灵活的。 而是将位于公共边界两侧的行和列组视为串联 如果其中一个元素具有灵活性,那么由这两个元素组成的复合组是灵活的。

为了使柱子伸展,确保它内部的所有组件都定义了重量或重力。 要防止色谱柱拉伸,请确保色谱柱中的某个组分未定义重量或重力。

当灵活性原则没有提供完全的消歧时,GridLayout的算法更偏向于靠近其右边底边的行和列。 更确切地说,GridLayout将它的每个布局参数作为一组变量的约束条件,这些变量定义了给定轴上的网格线。 在布局过程中,GridLayout解决了约束条件,以便将唯一的解决方案返回到所有变量小于或等于所有其他有效解决方案中相应值的约束条件。

Interpretation of GONE

For layout purposes, GridLayout treats views whose visibility status is GONE, as having zero width and height. This is subtly different from the policy of ignoring views that are marked as GONE outright. If, for example, a gone-marked view was alone in a column, that column would itself collapse to zero width if and only if no gravity was defined on the view. If gravity was defined, then the gone-marked view has no effect on the layout and the container should be laid out as if the view had never been added to it. GONE views are taken to have zero weight during excess space distribution.

这些语句同样适用于行和列,以及行或列的组。

有关GridLayout使用的布局参数的完整说明,请参见 GridLayout.LayoutParams

Summary

Nested classes

class GridLayout.Alignment

对齐方式指定视图应放置在单元格组中的位置以及其大小。

class GridLayout.LayoutParams

布局信息与GridLayout的每个子节点相关联。

class GridLayout.Spec

Spec规定了一组单元的水平或垂直特性。

XML attributes

android:alignmentMode When set to alignMargins, causes alignment to take place between the outer boundary of a view, as defined by its margins. 
android:columnCount The maxmimum number of columns to create when automatically positioning children. 
android:columnOrderPreserved When set to true, forces column boundaries to appear in the same order as column indices. 
android:orientation The orientation property is not used during layout. 
android:rowCount The maxmimum number of rows to create when automatically positioning children. 
android:rowOrderPreserved When set to true, forces row boundaries to appear in the same order as row indices. 
android:useDefaultMargins When set to true, tells GridLayout to use default margins when none are specified in a view's layout parameters. 

Inherited XML attributes

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

Constants

int ALIGN_BOUNDS

这个常数是 alignmentMode

int ALIGN_MARGINS

这个常数是 alignmentMode

int HORIZONTAL

水平方向。

int UNDEFINED

用于指示值未定义的常量。

int VERTICAL

垂直方向。

Inherited constants

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

Fields

public static final GridLayout.Alignment BASELINE

指示视图应与其单元组中其他视图的 基线对齐。

public static final GridLayout.Alignment BOTTOM

指示视图应与其单元组中其他视图的 底部边缘对齐。

public static final GridLayout.Alignment CENTER

指示视图应该以其单元格组中的其他视图 为中心

public static final GridLayout.Alignment END

指示视图应与其单元组中其他视图的 末端边缘对齐。

public static final GridLayout.Alignment FILL

指示视图应该展开以适合其单元组的边界。

public static final GridLayout.Alignment LEFT

指示视图应与其单元格组中其他视图的 边缘对齐。

public static final GridLayout.Alignment RIGHT

指示视图应与其单元格组中其他视图的 边缘对齐。

public static final GridLayout.Alignment START

指示视图应该与其单元格组中其他视图的 起始边缘对齐。

public static final GridLayout.Alignment TOP

指示视图应与其单元格组中其他视图的 顶部边缘对齐。

Inherited fields

From class android.view.View

Public constructors

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

Public methods

GridLayout.LayoutParams generateLayoutParams(AttributeSet attrs)

根据提供的属性集返回一组新的布局参数。

CharSequence getAccessibilityClassName()

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

int getAlignmentMode()

返回对齐模式。

int getColumnCount()

返回当前的列数。

int getOrientation()

返回当前的方向。

int getRowCount()

返回当前的行数。

boolean getUseDefaultMargins()

返回当没有定义相应的布局参数时,此GridLayout是否将分配默认边距。

boolean isColumnOrderPreserved()

返回列边界是否按其网格索引排序。

boolean isRowOrderPreserved()

返回行边界是否按其网格索引排序。

void onViewAdded(View child)

当新的孩子被添加到这个ViewGroup时调用。

void onViewRemoved(View child)

当从此ViewGroup中移除子视图时调用。

void requestLayout()

当事情发生变化时调用它,这已经使这个视图的布局无效。

void setAlignmentMode(int alignmentMode)

设置对齐模式以用于此容器的子项之间的所有对齐。

void setColumnCount(int columnCount)

当组件的布局参数未指定时,ColumnCount仅用于生成默认列/列索引。

void setColumnOrderPreserved(boolean columnOrderPreserved)

当此属性为 true ,GridLayout被迫放置列边界,以使它们的 true在视图中以升序排列。

void setOrientation(int orientation)

GridLayout使用orientation属性有两个目的:

  • To control the 'direction' in which default row/column indices are generated when they are not specified in a component's layout parameters.

void setRowCount(int rowCount)

RowCount仅用于在组件的布局参数未指定它们时生成默认行/列索引。

void setRowOrderPreserved(boolean rowOrderPreserved)

当这个属性是 true ,GridLayout被迫放置行边界,以便它们的 true在视图中以升序排列。

void setUseDefaultMargins(boolean useDefaultMargins)

true ,GridLayout根据孩子的视觉特征为儿童分配默认边距。

static GridLayout.Spec spec(int start, float weight)

相当于: spec(start, 1, weight)

static GridLayout.Spec spec(int start)

返回规格, spec ,其中:

  • spec.span = [start, start + 1]

要使开始索引未定义,请使用值 UNDEFINED

static GridLayout.Spec spec(int start, int size, GridLayout.Alignment alignment, float weight)

返回规格, spec ,其中:

  • spec.span = [start, start + size]
  • spec.alignment = alignment
  • spec.weight = weight

要使开始索引未定义,请使用值 UNDEFINED

static GridLayout.Spec spec(int start, GridLayout.Alignment alignment, float weight)

相当于: spec(start, 1, alignment, weight)

static GridLayout.Spec spec(int start, int size, GridLayout.Alignment alignment)

相当于: spec(start, size, alignment, 0f)

static GridLayout.Spec spec(int start, GridLayout.Alignment alignment)

返回规格, spec ,其中:

  • spec.span = [start, start + 1]
  • spec.alignment = alignment

要使开始索引未定义,请使用值 UNDEFINED

static GridLayout.Spec spec(int start, int size, float weight)

等同于: spec(start, 1, default_alignment, weight) -在 default_alignment在指定 GridLayout.LayoutParams

static GridLayout.Spec spec(int start, int size)

返回规格, spec ,其中:

  • spec.span = [start, start + size]

要使开始索引未定义,请使用值 UNDEFINED

Protected methods

boolean checkLayoutParams(ViewGroup.LayoutParams p)
GridLayout.LayoutParams generateDefaultLayoutParams()

返回一组默认布局参数。

GridLayout.LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp)

根据提供的布局参数返回一组安全的布局参数。

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

当这个视图为每个孩子分配一个大小和位置时,从布局调用。

void onMeasure(int widthSpec, int heightSpec)

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

Inherited methods

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

XML attributes

android:alignmentMode

设置为alignMargins时,会导致对齐发生在视图的外边界之间,如边界所定义。 设置为alignBounds时,会导致视图边缘之间发生对齐。 默认值是alignMargins。 setAlignmentMode(int)

必须是下列常数值之一。

Constant Value 描述
alignBounds 0 Align the bounds of the children. See ALIGN_BOUNDS.
alignMargins 1 Align the margins of the children. See ALIGN_MARGINS.

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

相关方法:

android:columnCount

自动定位子项时创建的最大列数。

必须是整数值,例如“ 100 ”。

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

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

相关方法:

android:columnOrderPreserved

设置为true时,强制列边界以与列索引相同的顺序显示。 默认值是true。 setColumnOrderPreserved(boolean)

必须是布尔值,即“ true ”或“ false ”。

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

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

相关方法:

android:orientation

布局过程中不使用方向属性。 它只用于在未由子级布局参数指定的情况下分配行和列参数。 在这种情况下,GridLayout像LinearLayout一样工作; 根据此标志的值,将所有组件放在单行或单列中。 在水平情况下,可能会另外提供columnCount属性,以在行已满时强制创建新行。 rowCount属性可以在垂直情况下类似地使用。 默认是水平的。

必须是下列常数值之一。

Constant Value 描述
horizontal 0 Defines an horizontal widget.
vertical 1 Defines a vertical widget.

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

相关方法:

android:rowCount

自动定位子项时要创建的最大行数。

必须是整数值,例如“ 100 ”。

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

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

相关方法:

android:rowOrderPreserved

设置为true时,强制行边界以与行索引相同的顺序出现。 默认值是true。 setRowOrderPreserved(boolean)

必须是布尔值,可以是“ true ”或“ false ”。

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

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

相关方法:

android:useDefaultMargins

设置为true时,告诉GridLayout在视图的布局参数中未指定任何值时使用默认边距。 默认值是false。 setUseDefaultMargins(boolean)

必须是布尔值,可以是“ true ”或“ false ”。

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

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

相关方法:

Constants

ALIGN_BOUNDS

Added in API level 14
int ALIGN_BOUNDS

这个常数是alignmentMode alignmentMode设定为ALIGN_BOUNDS ,对准每种组分的原料视图边界的边缘之间进行:即,通过该组件的限定的区域: topleftbottomright性质。

例如,当 GridLayout处于 ALIGN_BOUNDS模式时,属于使用 TOP对齐的行组的子 TOP将在调用 getTop()方法时全部返回相同的值。

也可以看看:

常量值:0(0x00000000)

ALIGN_MARGINS

Added in API level 14
int ALIGN_MARGINS

这个常数是alignmentMode alignmentMode设置为ALIGN_MARGINS ,每个视图的边界将根据其边距向外扩展,然后对齐所得矩形的边缘。

例如,当 GridLayout处于 ALIGN_MARGINS模式时,数量 top - layoutParams.topMargin对属于使用 TOP对齐的行组的所有子 top - layoutParams.topMargin都是相同的。

也可以看看:

常数值:1(0x00000001)

HORIZONTAL

Added in API level 14
int HORIZONTAL

水平方向。

常量值:0(0x00000000)

UNDEFINED

Added in API level 14
int UNDEFINED

用于指示值未定义的常量。 字段可以使用此值来指示它们的值尚未设置。 同样,方法可以返回这个值来表明实现可以返回没有合适的值。 用于常量(当前为MIN_VALUE )的值旨在避免标志可能MIN_VALUE有效值之间的混淆。

常量值:-2147483648(0x80000000)

VERTICAL

Added in API level 14
int VERTICAL

垂直方向。

常数值:1(0x00000001)

Fields

BASELINE

Added in API level 14
GridLayout.Alignment BASELINE

指示视图应与其单元组中其他视图的基线对齐。 此常数只能用作rowSpecs的对齐rowSpecs

也可以看看:

BOTTOM

Added in API level 14
GridLayout.Alignment BOTTOM

指示视图应与其单元组中其他视图的 底部边缘对齐。

CENTER

Added in API level 14
GridLayout.Alignment CENTER

指示视图应该以其单元格组中的其他视图为中心 该常数可用于rowSpecscolumnSpecs

END

Added in API level 16
GridLayout.Alignment END

指示视图应与其单元组中其他视图的 末端边缘对齐。

FILL

Added in API level 14
GridLayout.Alignment FILL

指示视图应该展开以适合其单元组的边界。 该常数可用于rowSpecscolumnSpecs

LEFT

Added in API level 14
GridLayout.Alignment LEFT

指示视图应与其单元格组中其他视图的 边缘对齐。

RIGHT

Added in API level 14
GridLayout.Alignment RIGHT

指示视图应与其单元格组中其他视图的 边缘对齐。

START

Added in API level 16
GridLayout.Alignment START

指示视图应该与其单元格组中其他视图的 起始边缘对齐。

TOP

Added in API level 14
GridLayout.Alignment TOP

指示视图应与其单元格组中其他视图的 顶部边缘对齐。

Public constructors

GridLayout

Added in API level 14
GridLayout (Context context)

Parameters
context Context

GridLayout

Added in API level 14
GridLayout (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

GridLayout

Added in API level 14
GridLayout (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

GridLayout

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

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

generateLayoutParams

Added in API level 14
GridLayout.LayoutParams generateLayoutParams (AttributeSet attrs)

根据提供的属性集返回一组新的布局参数。

Parameters
attrs AttributeSet: the attributes to build the layout parameters from
Returns
GridLayout.LayoutParams an instance of ViewGroup.LayoutParams or one of its descendants

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

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

Returns
CharSequence

getAlignmentMode

Added in API level 14
int getAlignmentMode ()

返回对齐模式。

相关XML属性:

Returns
int the alignment mode; either ALIGN_BOUNDS or ALIGN_MARGINS

也可以看看:

getColumnCount

Added in API level 14
int getColumnCount ()

返回当前的列数。 这是setColumnCount(int)中设置的最后一个值,或者如果没有设置这样的值,则是columnSpec定义的每个上限的columnSpec

相关XML属性:

Returns
int the current number of columns

也可以看看:

getOrientation

Added in API level 14
int getOrientation ()

返回当前的方向。

相关XML属性:

Returns
int either HORIZONTAL or VERTICAL

也可以看看:

getRowCount

Added in API level 14
int getRowCount ()

返回当前的行数。 这是用setRowCount(int)设置的最后一个值,或者如果没有设置这样的值,则在rowSpec定义的每个上限的rowSpec

相关XML属性:

Returns
int the current number of rows

也可以看看:

getUseDefaultMargins

Added in API level 14
boolean getUseDefaultMargins ()

返回当没有定义相应的布局参数时,此GridLayout是否将分配默认边距。

相关XML属性:

Returns
boolean true if default margins should be allocated

也可以看看:

isColumnOrderPreserved

Added in API level 14
boolean isColumnOrderPreserved ()

返回列边界是否按其网格索引排序。

相关XML属性:

Returns
boolean true if column boundaries must appear in the order of their indices, false otherwise

也可以看看:

isRowOrderPreserved

Added in API level 14
boolean isRowOrderPreserved ()

返回行边界是否按其网格索引排序。

相关XML属性:

Returns
boolean true if row boundaries must appear in the order of their indices, false otherwise

也可以看看:

onViewAdded

Added in API level 23
void onViewAdded (View child)

当新的孩子被添加到这个ViewGroup时调用。 覆盖应该总是调用super.onViewAdded。

Parameters
child View: the added child view

onViewRemoved

Added in API level 23
void onViewRemoved (View child)

当从此ViewGroup中移除子视图时调用。 覆盖应该总是调用super.onViewRemoved。

Parameters
child View: the removed child view

requestLayout

Added in API level 14
void requestLayout ()

当事情发生变化时调用它,这已经使这个视图的布局无效。 这将安排视图树的布局传递。 当视图层次结构当前处于布局阶段( isInLayout()时,不应调用此视图层次结构( isInLayout() 。如果发生布局,则可以在当前布局阶段结束时isInLayout()请求(然后布局将再次运行),或者在当前帧结束之后绘制并发生下一个布局。

覆盖此方法的子类应调用超类方法以正确处理可能的布局错误请求。

setAlignmentMode

Added in API level 14
void setAlignmentMode (int alignmentMode)

设置对齐模式以用于此容器的子项之间的所有对齐。

此属性的默认值是 ALIGN_MARGINS

相关XML属性:

Parameters
alignmentMode int: either ALIGN_BOUNDS or ALIGN_MARGINS

也可以看看:

setColumnCount

Added in API level 14
void setColumnCount (int columnCount)

当组件的布局参数未指定时,ColumnCount仅用于生成默认列/列索引。

相关XML属性:

Parameters
columnCount int: the number of columns.

也可以看看:

setColumnOrderPreserved

Added in API level 14
void setColumnOrderPreserved (boolean columnOrderPreserved)

当此属性为 true ,GridLayout被迫放置列边界,以便它们的 true在视图中以升序排列。

当此属性为 false GridLayout可自由将水平列的边界以任何最适合给定约束的顺序放置。

此属性的默认值是 true

相关XML属性:

Parameters
columnOrderPreserved boolean: use true to force GridLayout to respect the order of column boundaries.

也可以看看:

setOrientation

Added in API level 14
void setOrientation (int orientation)

GridLayout使用orientation属性有两个目的:

  • To control the 'direction' in which default row/column indices are generated when they are not specified in a component's layout parameters.
  • To control which axis should be processed first during the layout operation: when orientation is HORIZONTAL the horizontal axis is laid out first.
The order in which axes are laid out is important if, for example, the height of one of GridLayout's children is dependent on its width - and its width is, in turn, dependent on the widths of other components.

如果您的布局包含 TextView (或衍生物: ButtonEditTextCheckBox ,等等),这是在多行模式(默认),它通常最好是离开网格布局的方向为 HORIZONTAL -因为 TextView能够取得其高度的一个给定的宽度,但不是相反的方式。

除上述效果外,方向不会影响GridLayout的实际布局操作,因此即使预期布局的高度大大超过宽度,也可以将GridLayout保留为 HORIZONTAL模式。

此属性的默认值是 HORIZONTAL

相关XML属性:

Parameters
orientation int: either HORIZONTAL or VERTICAL

也可以看看:

setRowCount

Added in API level 14
void setRowCount (int rowCount)

RowCount仅用于在组件的布局参数未指定它们时生成默认行/列索引。

相关XML属性:

Parameters
rowCount int: the number of rows

也可以看看:

setRowOrderPreserved

Added in API level 14
void setRowOrderPreserved (boolean rowOrderPreserved)

当此属性为 true ,GridLayout被迫放置行边界,以使它们的 true在视图中以升序排列。

当这个属性是 false GridLayout可以自由地将垂直行边界以任何最适合给定约束的顺序放置。

此属性的默认值是 true

相关XML属性:

Parameters
rowOrderPreserved boolean: true to force GridLayout to respect the order of row boundaries

也可以看看:

setUseDefaultMargins

Added in API level 14
void setUseDefaultMargins (boolean useDefaultMargins)

true ,GridLayout根据孩子的视觉特性为儿童分配默认边距。 如此定义的每个边距可以通过对相应布局参数的分配而被独立地覆盖。

false ,所有边距的默认值为零。

设置为 true ,请考虑将 alignmentMode属性的值设置为 ALIGN_BOUNDS

此属性的默认值为 false

相关XML属性:

Parameters
useDefaultMargins boolean: use true to make GridLayout allocate default margins

也可以看看:

spec

Added in API level 21
GridLayout.Spec spec (int start, 
                float weight)

相当于: spec(start, 1, weight)

Parameters
start int: the start
weight float: the weight
Returns
GridLayout.Spec

spec

Added in API level 14
GridLayout.Spec spec (int start)

返回规格, spec ,其中:

  • spec.span = [start, start + 1]

要使开始索引未定义,请使用值 UNDEFINED

Parameters
start int: the start index
Returns
GridLayout.Spec

也可以看看:

spec

Added in API level 21
GridLayout.Spec spec (int start, 
                int size, 
                GridLayout.Alignment alignment, 
                float weight)

返回规格, spec ,其中:

  • spec.span = [start, start + size]
  • spec.alignment = alignment
  • spec.weight = weight

要使开始索引未定义,请使用值 UNDEFINED

Parameters
start int: the start
size int: the size
alignment GridLayout.Alignment: the alignment
weight float: the weight
Returns
GridLayout.Spec

spec

Added in API level 21
GridLayout.Spec spec (int start, 
                GridLayout.Alignment alignment, 
                float weight)

相当于: spec(start, 1, alignment, weight)

Parameters
start int: the start
alignment GridLayout.Alignment: the alignment
weight float: the weight
Returns
GridLayout.Spec

spec

Added in API level 14
GridLayout.Spec spec (int start, 
                int size, 
                GridLayout.Alignment alignment)

相当于: spec(start, size, alignment, 0f)

Parameters
start int: the start
size int: the size
alignment GridLayout.Alignment: the alignment
Returns
GridLayout.Spec

spec

Added in API level 14
GridLayout.Spec spec (int start, 
                GridLayout.Alignment alignment)

返回规格, spec ,其中:

  • spec.span = [start, start + 1]
  • spec.alignment = alignment

要使开始索引未定义,请使用值 UNDEFINED

Parameters
start int: the start index
alignment GridLayout.Alignment: the alignment
Returns
GridLayout.Spec

也可以看看:

spec

Added in API level 21
GridLayout.Spec spec (int start, 
                int size, 
                float weight)

等同于: spec(start, 1, default_alignment, weight) -在 default_alignment在指定 GridLayout.LayoutParams

Parameters
start int: the start
size int: the size
weight float: the weight
Returns
GridLayout.Spec

spec

Added in API level 14
GridLayout.Spec spec (int start, 
                int size)

返回规格, spec ,其中:

  • spec.span = [start, start + size]

要使开始索引未定义,请使用值 UNDEFINED

Parameters
start int: the start
size int: the size
Returns
GridLayout.Spec

也可以看看:

Protected methods

checkLayoutParams

Added in API level 14
boolean checkLayoutParams (ViewGroup.LayoutParams p)

Parameters
p ViewGroup.LayoutParams
Returns
boolean

generateDefaultLayoutParams

Added in API level 14
GridLayout.LayoutParams generateDefaultLayoutParams ()

返回一组默认布局参数。 当传递给addView(View)的视图没有设置布局参数时,请求这些参数。 如果返回null,则会从addView引发异常。

Returns
GridLayout.LayoutParams a set of default layout parameters or null

generateLayoutParams

Added in API level 14
GridLayout.LayoutParams generateLayoutParams (ViewGroup.LayoutParams lp)

根据提供的布局参数返回一组安全的布局参数。 当一个ViewGroup被传递一个视图,其布局参数不能通过checkLayoutParams(android.view.ViewGroup.LayoutParams)的测试时,这个方法被调用。 此方法应该返回一组适合此ViewGroup的布局参数,可能是通过从指定的一组布局参数中复制适当的属性。

Parameters
lp ViewGroup.LayoutParams: The layout parameters to convert into a suitable set of layout parameters for this ViewGroup.
Returns
GridLayout.LayoutParams an instance of ViewGroup.LayoutParams or one of its descendants

onLayout

Added in API level 14
void onLayout (boolean changed, 
                int left, 
                int top, 
                int right, 
                int bottom)

当这个视图为每个孩子分配一个大小和位置时,从布局调用。 带孩子的派生类应该覆盖这个方法,并调用他们每个孩子的布局。

Parameters
changed boolean: This is a new size or position for this view
left int: Left position, relative to parent
top int: Top position, relative to parent
right int: Right position, relative to parent
bottom int: Bottom position, relative to parent

onMeasure

Added in API level 14
void onMeasure (int widthSpec, 
                int heightSpec)

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

合同:重写此方法时, 必须调用setMeasuredDimension(int, int)来存储此视图的测量宽度和高度。 不这样做会触发IllegalStateException ,由measure(int, int)抛出。 调用超类' onMeasure(int, int)是一个有效的用法。

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

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

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

Hooray!