Most visited

Recently visited

Added in API level 1

LinearLayout

public class LinearLayout
extends ViewGroup

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.LinearLayout
Known Direct Subclasses


将其子项排列在单列或单行中的布局。 行的方向可以通过调用setOrientation()来设置。 您还可以指定重力,通过调用setGravity()指定所有子元素的对齐方式,或指定特定的子级长大,通过设置权重成员LinearLayout.LayoutParams来填充布局中的任何剩余空间。 默认方向是水平的。

请参阅 Linear Layout指南。

有关布局属性,请参阅 android.widget.LinearLayout.LayoutParams

Summary

Nested classes

class LinearLayout.LayoutParams

与ViewLinearLayout相关联的每个孩子的布局信息。

XML attributes

android:baselineAligned When set to false, prevents the layout from aligning its children's baselines. 
android:baselineAlignedChildIndex When a linear layout is part of another layout that is baseline aligned, it can specify which of its children to baseline align to (that is, which child TextView). 
android:divider Drawable to use as a vertical divider between buttons. 
android:gravity Specifies how an object should position its content, on both the X and Y axes, within its own bounds. 
android:measureWithLargestChild When set to true, all children with a weight will be considered having the minimum size of the largest child. 
android:orientation Should the layout be a column or a row? Use "horizontal" for a row, "vertical" for a column. 
android:weightSum Defines the maximum weight sum. 

Inherited XML attributes

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

Constants

int HORIZONTAL

int SHOW_DIVIDER_BEGINNING

在组的开头显示分隔符。

int SHOW_DIVIDER_END

在组的最后显示一个分隔符。

int SHOW_DIVIDER_MIDDLE

在组中的每个项目之间显示分隔线。

int SHOW_DIVIDER_NONE

不要显示任何分隔符。

int VERTICAL

Inherited constants

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

Inherited fields

From class android.view.View

Public constructors

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

Public methods

LinearLayout.LayoutParams generateLayoutParams(AttributeSet attrs)

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

CharSequence getAccessibilityClassName()

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

int getBaseline()

从小部件的顶部边界返回小部件文本基线的偏移量。

int getBaselineAlignedChildIndex()
Drawable getDividerDrawable()
int getDividerPadding()

获取用于插入分隔符的填充大小(以像素为单位)

int getGravity()

返回当前的重力。

int getOrientation()

返回当前的方向。

int getShowDividers()
float getWeightSum()

返回所需的权重总和。

boolean isBaselineAligned()

指示此布局中包含的小部件是否与其基线对齐。

boolean isMeasureWithLargestChildEnabled()

如果属实,所有有体重的孩子都将被视为最大孩子的最小体型。

void onRtlPropertiesChanged(int layoutDirection)

当任何RTL属性(布局方向或文本方向或文本对齐)已被更改时调用。

void setBaselineAligned(boolean baselineAligned)

定义此布局中包含的小部件是否与基线对齐。

void setBaselineAlignedChildIndex(int i)
void setDividerDrawable(Drawable divider)

设置一个可绘制的项目作为分隔符。

void setDividerPadding(int padding)

设置分隔符两端显示的填充。

void setGravity(int gravity)

介绍子视图的定位方式。

void setHorizontalGravity(int horizontalGravity)
void setMeasureWithLargestChildEnabled(boolean enabled)

当设置为真时,所有有体重的孩子将被认为是最大的孩子的最小尺寸。

void setOrientation(int orientation)

布局应该是一列还是一列。

void setShowDividers(int showDividers)

设置此布局中的项目之间应该如何显示分隔符

void setVerticalGravity(int verticalGravity)
void setWeightSum(float weightSum)

定义所需的权重总和。

boolean shouldDelayChildPressedState()

如果应该延迟此ViewGroup的子项或后代的按下状态,则返回true。

Protected methods

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

当布局的方向为 VERTICAL时,返回一组宽度为 MATCH_PARENT ,高度为 WRAP_CONTENT的布局 VERTICAL

LinearLayout.LayoutParams generateLayoutParams(ViewGroup.LayoutParams lp)

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

void onDraw(Canvas canvas)

实施这个来做你的绘画。

void onLayout(boolean changed, int l, int t, int r, int b)

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

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

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

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:baselineAligned

设置为false时,可防止布局调整其子基线。 当儿童对重力使用不同的值时,此属性特别有用。 默认值是true。

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

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

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

相关方法:

android:baselineAlignedChildIndex

当一个线性布局是基线对齐的另一个布局的一部分时,它可以指定它的哪个子对象与基线对齐(即,哪个子TextView)。

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

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

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

相关方法:

android:divider

可用作按钮之间的垂直分隔符。

可能是另一种资源的引用,其形式为“ @[+][package:]type:name ”,或者其形式为“一个主题属性 ?[package:][type:]name ”。

可以是“ #rgb ”,“ #argb ”,“ #rrggbb ”或“ #aarrggbb ”形式的颜色值。

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

相关方法:

android:gravity

指定对象应如何在其X轴和Y轴上将其内容定位在其自己的范围内。

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

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:measureWithLargestChild

当设置为真时,所有有体重的孩子将被认为是最大的孩子的最小尺寸。 如果错误,所有孩子都会正常测量。

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

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

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

相关方法:

android:orientation

布局应该是一列还是一排? 一行使用“水平”,一列使用“垂直”。 默认是水平的。

必须是下列常数值之一。

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

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

相关方法:

android:weightSum

定义最大权重和。 如果未指定,则通过添加所有孩子的layout_weight来计算总和。 例如,通过给它一个layout_weight为0.5,并将weightSum设置为1.0的方法,可以用于给单个孩子50%的总可用空间。

必须是浮点值,例如“ 1.2 ”。

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

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

Constants

HORIZONTAL

Added in API level 1
int HORIZONTAL

常量值:0(0x00000000)

SHOW_DIVIDER_BEGINNING

Added in API level 11
int SHOW_DIVIDER_BEGINNING

在组的开头显示分隔符。

常数值:1(0x00000001)

SHOW_DIVIDER_END

Added in API level 11
int SHOW_DIVIDER_END

在组的最后显示一个分隔符。

常量值:4(0x00000004)

SHOW_DIVIDER_MIDDLE

Added in API level 11
int SHOW_DIVIDER_MIDDLE

在组中的每个项目之间显示分隔线。

常量值:2(0x00000002)

SHOW_DIVIDER_NONE

Added in API level 11
int SHOW_DIVIDER_NONE

不要显示任何分隔符。

常量值:0(0x00000000)

VERTICAL

Added in API level 1
int VERTICAL

常数值:1(0x00000001)

Public constructors

LinearLayout

Added in API level 1
LinearLayout (Context context)

Parameters
context Context

LinearLayout

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

Parameters
context Context
attrs AttributeSet

LinearLayout

Added in API level 11
LinearLayout (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

LinearLayout

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

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

generateLayoutParams

Added in API level 1
LinearLayout.LayoutParams generateLayoutParams (AttributeSet attrs)

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

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

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

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

Returns
CharSequence

getBaseline

Added in API level 1
int getBaseline ()

从小部件的顶部边界返回小部件文本基线的偏移量。 如果此小部件不支持基线对齐,则此方法返回-1。

Returns
int the offset of the baseline within the widget's bounds or -1 if baseline alignment is not supported

getBaselineAlignedChildIndex

Added in API level 1
int getBaselineAlignedChildIndex ()

Returns
int The index of the child that will be used if this layout is part of a larger layout that is baseline aligned, or -1 if none has been set.

getDividerDrawable

Added in API level 16
Drawable getDividerDrawable ()

相关XML属性:

Returns
Drawable the divider Drawable that will divide each item.

也可以看看:

getDividerPadding

Added in API level 14
int getDividerPadding ()

获取用于插入分隔符的填充大小(以像素为单位)

Returns
int

也可以看看:

getGravity

Added in API level 24
int getGravity ()

返回当前的重力。 Gravity

Returns
int the current gravity.

也可以看看:

getOrientation

Added in API level 1
int getOrientation ()

返回当前的方向。

Returns
int either HORIZONTAL or VERTICAL

getShowDividers

Added in API level 11
int getShowDividers ()

Returns
int A flag set indicating how dividers should be shown around items.

也可以看看:

getWeightSum

Added in API level 1
float getWeightSum ()

返回所需的权重总和。

Returns
float A number greater than 0.0f if the weight sum is defined, or a number lower than or equals to 0.0f if not weight sum is to be used.

isBaselineAligned

Added in API level 1
boolean isBaselineAligned ()

指示此布局中包含的小部件是否与其基线对齐。

Returns
boolean true when widgets are baseline-aligned, false otherwise

isMeasureWithLargestChildEnabled

Added in API level 11
boolean isMeasureWithLargestChildEnabled ()

如果属实,所有有体重的孩子都将被视为最大孩子的最小体型。 如果错误,所有孩子都会正常测量。

相关XML属性:

Returns
boolean True to measure children with a weight using the minimum size of the largest child, false otherwise.

onRtlPropertiesChanged

Added in API level 17
void onRtlPropertiesChanged (int layoutDirection)

当任何RTL属性(布局方向或文本方向或文本对齐)已被更改时调用。 子类需要重写此方法以处理依赖于已解析布局方向的缓存信息,或通知继承其布局方向的子视图。 默认实现什么都不做。

Parameters
layoutDirection int: the direction of the layout

setBaselineAligned

Added in API level 1
void setBaselineAligned (boolean baselineAligned)

定义此布局中包含的小部件是否与基线对齐。

相关XML属性:

Parameters
baselineAligned boolean: true to align widgets on their baseline, false otherwise

setBaselineAlignedChildIndex

Added in API level 1
void setBaselineAlignedChildIndex (int i)

相关XML属性:

Parameters
i int: The index of the child that will be used if this layout is part of a larger layout that is baseline aligned.

setDividerDrawable

Added in API level 11
void setDividerDrawable (Drawable divider)

设置一个可绘制的项目作为分隔符。

相关XML属性:

Parameters
divider Drawable: Drawable that will divide each item.

也可以看看:

setDividerPadding

Added in API level 14
void setDividerPadding (int padding)

设置分隔符两端显示的填充。

Parameters
padding int: Padding value in pixels that will be applied to each end

也可以看看:

setGravity

Added in API level 1
void setGravity (int gravity)

介绍子视图的定位方式。 默认为GRAVITY_TOP。 如果此布局具有垂直方向,则会控制放置所有子视图的位置(如果存在多余的垂直空间)。 如果此布局具有HORIZONTAL方向,则会控制孩子的对齐。

相关XML属性:

Parameters
gravity int: See Gravity

setHorizontalGravity

Added in API level 1
void setHorizontalGravity (int horizontalGravity)

Parameters
horizontalGravity int

setMeasureWithLargestChildEnabled

Added in API level 11
void setMeasureWithLargestChildEnabled (boolean enabled)

当设置为真时,所有有体重的孩子将被认为是最大的孩子的最小尺寸。 如果错误,所有孩子都会正常测量。 默认情况下禁用。

相关XML属性:

Parameters
enabled boolean: True to measure children with a weight using the minimum size of the largest child, false otherwise.

setOrientation

Added in API level 1
void setOrientation (int orientation)

布局应该是一列还是一列。

相关XML属性:

Parameters
orientation int: Pass HORIZONTAL or VERTICAL. Default value is HORIZONTAL.

setShowDividers

Added in API level 11
void setShowDividers (int showDividers)

设置此布局中的项目之间应该如何显示分隔符

Parameters
showDividers int: One or more of SHOW_DIVIDER_BEGINNING, SHOW_DIVIDER_MIDDLE, or SHOW_DIVIDER_END, or SHOW_DIVIDER_NONE to show no dividers.

setVerticalGravity

Added in API level 1
void setVerticalGravity (int verticalGravity)

Parameters
verticalGravity int

setWeightSum

Added in API level 1
void setWeightSum (float weightSum)

定义所需的权重总和。 如果未指定,则权重总和将在布局时通过添加每个子项的layout_weight来计算。 例如,通过给它一个layout_weight为0.5,并将weightSum设置为1.0的方法,可以用于给单个孩子50%的总可用空间。

Parameters
weightSum float: a number greater than 0.0f, or a number lower than or equals to 0.0f if the weight sum should be computed from the children's layout_weight

shouldDelayChildPressedState

Added in API level 14
boolean shouldDelayChildPressedState ()

如果应该延迟此ViewGroup的子项或后代的按下状态,则返回true。 通常,这应该对可以滚动的容器(例如List)完成。 这可以防止在用户实际尝试滚动内容时出现按下状态。 出于兼容性原因,默认实现返回true。 不滚动的子类通常应该重写此方法并返回false。

Returns
boolean

Protected methods

checkLayoutParams

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

Parameters
p ViewGroup.LayoutParams
Returns
boolean

generateDefaultLayoutParams

Added in API level 1
LinearLayout.LayoutParams generateDefaultLayoutParams ()

当布局的方向为VERTICAL时,返回一组宽度为MATCH_PARENT ,高度为WRAP_CONTENT的布局VERTICAL 方向为HORIZONTAL ,宽度设置为WRAP_CONTENT ,高度为WRAP_CONTENT

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

generateLayoutParams

Added in API level 1
LinearLayout.LayoutParams generateLayoutParams (ViewGroup.LayoutParams lp)

根据提供的布局参数返回一组安全的布局参数。 当一个ViewGroup被传递一个View,其布局参数不能通过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
LinearLayout.LayoutParams an instance of ViewGroup.LayoutParams or one of its descendants

onDraw

Added in API level 1
void onDraw (Canvas canvas)

实施这个来做你的绘画。

Parameters
canvas Canvas: the canvas on which the background will be drawn

onLayout

Added in API level 1
void onLayout (boolean changed, 
                int l, 
                int t, 
                int r, 
                int b)

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

Parameters
changed boolean: This is a new size or position for this view
l int: Left position, relative to parent
t int: Top position, relative to parent
r int: Right position, relative to parent
b int: Bottom position, relative to parent

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!