/**
* FrameLayout 帧布局 最简单的布局
* LinearLayout 线性布局 左右排列 或者 上下排列
* RelativeLayout 相对布局 A B之间有相对位置
* 约束布局
* FrameLayout -> ViewGroup -> View
* ConstraintLayout -> ViewGroup -> View
* LinearLayout -> ViewGroup -> View
* RelativeLayout -> ViewGroup -> View
*
* 什么是View 视图 看得见的东西 当个视图
* 什么是ViewGroup 容器 可以容纳很多View 包含多个视图
* 每种容器都有自己独有的摆放方式
*
*
* XML标记语言
* <LinearLayout 标签的属性>
* //子控件
* <Button></Button> -> <Button 控件的属性/>
* <TextView></TextView> -> <TextView 控件属性/>
* </LinearLayout>
*
* android:layout_width="match_parent" 设置控件的宽度
* android:layout_height="match_parent" 设置控件的高度
* match_parent:匹配父容器 和父容器的宽度或者高度一致
* wrap_content: 包裹内容 由内容来定
* 100dp 固定值
*
* 容易出错的情况:无法确定控件的尺寸
* 父容器使用wrap_content
* 子控件使用match_parent
*
* LinearLayout:线性布局 (横向或者纵向)不建议使用
* orientation:设置排列方式 默认横向
* Horizontal 横向排列
* Vertical 纵向排列
*
* 界面显示:1.计算子控件和容器的尺寸 2.渲染 3.加载
*
* 外间距:margin 控件和父容器之间的间距
* 内间距:padding 控件和自己内容之间的间距
*
* ViewGroup.LayoutParams
* width
* height
* MATCH_PARENT
* WRAP_CONTENT
*
* ViewGroup.MarginLayoutParams : ViewGroup.LayoutParams
* leftMargin - startMargin :统一表示各个国家的语言顺序
* topMargin
* rightMargin - endMargin
* bottomMargin
*
* FrameLayout.LayoutParams:ViewGroup.MarginLayoutParams
* gravity
*
* 了解LinearLayout RelativeLayout ConstraintLayout对应的布局属性
*/