Android API 25 (Android 7.1.1 API)
FrameLayout
public class FrameLayout
extends ViewGroup
Added in API level 1
java.lang.Object
↳android.widget.FrameLayout
已知直接子类:
AppWidgetHostView
BaseCardView
BottomNavigationView
BrowseFrameLayout
CalendarView
CardView
CollapsingToolbarLayout
DatePicker
GestureOverlayView
HorizontalScrollView
MediaController
NavigationView
NestedScrollView
PercentFrameLayout
Picker
ScrollView
SearchOrbView
ShadowOverlayContainer
TabHost
TimePicker
TitleView
ViewAnimator
【概述】
FrameLayout设计用于屏蔽屏幕上的一个区域以显示单个项目。 通常,FrameLayout应该用于保存单个子视图,因为可能难以以可扩展到不同屏幕尺寸的方式组织子视图,而不会使子节点相互重叠。 然而,你可以添加多个孩子到FrameLayout,并通过使用android:layout_gravity属性为每个孩子分配重力来控制它们在FrameLayout中的位置。
子视图在堆栈中绘制,最近添加的子节点在顶部。 FrameLayout的大小是它最大的孩子的大小(加上填充),可见或不可见(如果FrameLayout的父允许)。 仅当setConsiderGoneChildrenWhenMeasuring()设置为true时,才使用GONE的视图进行大小调整。
【嵌套类】
类FrameLayout.LayoutParamsFrameLayout相关联的子项的布局信息
FrameLayout.LayoutParams
android: layout_gravity
API 1
属性说明:表示组件自身在父组件中的位置。默认值left。
可以是以下一个或多个(用”|”分隔)常量:
top 将对象推送到其容器的顶部,而不更改其大小。
bottom 将对象推送到其容器的底部,而不更改其大小。
left 将对象推送到其容器的左侧,而不更改其大小。
right 将对象推送到其容器的右侧,而不更改其大小。
center 将对象放置在其容器的垂直和水平轴的中心,而不改变其大小。
center_vertical 将对象放置在其容器的垂直中心,而不改变其大小。
centet_horizontal 将对象放置在其容器的水平中心,而不改变其大小。
Fill 如果需要,增大对象的水平和垂直尺寸,以便它完全填充其容器。
fill_vertical 如果需要,增大对象的垂直尺寸,以便它完全填充其容器。
fill_horizontal 如果需要,增大对象的水平尺寸,以便它完全填充其容器。
clip_vertical 附加的可选设置,它可以设置容器内子对象的上下边缘裁剪它的容器边框。裁剪会基于垂直对齐的方式:顶部对齐的会裁剪底部边缘,底部对齐的会裁剪顶部边缘,不会上下边缘都裁剪。
clip_horizontal 附加的可选设置,它可以设置容器内子对象的左右边缘裁剪它的容器边框。裁剪会基于水平对齐的方式:左对齐的会裁剪右边缘,右对齐的会裁剪左边缘,不会左右边缘都裁剪。
start 将对象推送到其容器的起始处,而不更改其大小。
end 将对象推送到其容器的结尾处,而不更改其大小。
对应的全局属性资源符号是layout_gravity。
FrameLayout.LayoutParams
继承自view.ViewGroup.MarginLayoutParams的xml属性
继承自view.ViewGroup.LoutParams的XML属性
【XML属性】
android: foregroundGravity
API 1
关联方法:setForegroundGravity(int gravity)
属性说明:定义应用于前景drawable的gravity。默认为fill。
必须是下列常量值的一个或多个(用”|”分隔):
top 将对象推送到其容器的顶部,而不更改其大小。
bottom 将对象推送到其容器的底部,而不更改其大小。
left 将对象推送到其容器的左侧,而不更改其大小。
right 将对象推送到其容器的右侧,而不更改其大小。
center 将对象放置在其容器的垂直和水平轴的中心,而不改变其大小。
center_vertical 将对象放置在其容器的垂直中心,而不改变其大小。
centet_horizontal 将对象放置在其容器的水平中心,而不改变其大小。
Fill 如果需要,增大对象的水平和垂直尺寸,以便它完全填充其容器。
fill_vertical 如果需要,增大对象的垂直尺寸,以便它完全填充其容器。
fill_horizontal 如果需要,增大对象的水平尺寸,以便它完全填充其容器。
clip_vertical 附加的可选设置,它可以设置容器内子对象的上下边缘裁剪它的容器边框。裁剪会基于垂直对齐的方式:顶部对齐的会裁剪底部边缘,底部对齐的会裁剪顶部边缘,不会上下边缘都裁剪。
clip_horizontal 附加的可选设置,它可以设置容器内子对象的左右边缘裁剪它的容器边框。裁剪会基于水平对齐的方式:左对齐的会裁剪右边缘,右对齐的会裁剪左边缘,不会左右边缘都裁剪。
对应的全局属性资源符号是foregroundGravity。
与view.View中一样...
android: measureAllChildren
API 1
关联方法:setMeasureAllChildren(boolean measureAll)
属性说明:确定在测量时是否考虑所有子元素,或只是处于“VISIBLE”或“INVISIBLE”状态的子元素。默认为false。
必须是布尔值(boolean),“true”或“false”。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是measureAllChildren。
【继承自view.ViewGroup的XML属性】
【继承自view.View的XML属性】
【公共方法】
public FrameLayout.LayoutParams generateLayoutParams (AttributeSet attrs)
Added in API level 1
根据提供的属性集返回一组新的布局参数。
public CharSequence getAccessibilityClassName ()
Added in API level 23
返回此对象的类名以用于辅助功能。子类只能覆盖这个,如果他们实现的东西,应该被视为一个完全新的类的视图使用时的可访问性,与其派生的类无关。这用于填充AccessibilityNodeInfo.setClassName。
public boolean getConsiderGoneChildrenWhenMeasuring ()
Added in API level 1,deprecated in API level 14
public boolean getMeasureAllChildren(),
Added in API level 14
确定在测量时是否考虑所有子元素,或只是处于“VISIBLE”或“INVISIBLE”状态的子元素。
public void setMeasureAllChildren (boolean measureAll)
Added in API level 1
设置在测量时是否考虑所有子元素,或只是处于“VISIBLE”或“INVISIBLE”状态的子元素。
public void setForegroundGravity (int foregroundGravity)
描述前景如何定位。默认为START和TOP。
public boolean shouldDelayChildPressedState ()
Added in API level 14
如果按下的状态应该延迟此ViewGroup的子代或后代,则返回true。 通常,应该对可以滚动的容器(例如列表)执行此操作。 这防止当用户实际上试图滚动内容时出现按下状态。 出于兼容性原因,默认实现返回true。 不滚动的子类通常会覆盖此方法并返回false。