我使用的是: Android Studio 2.3.3版本的。
由于AS默认布局方式是: ConstraintLayout( 扁平化布局)
1.File-->New-->XML-->Layout XML File 就可以新建LinearLayout布局了
android:orientation="horizontal" (水平布局) android:orientation="vertical" (垂直布局)
2.layout_weight 是Android线性布局中的权重表示方式,一定程度上用来表示子布局所占父布局的比重。
若C-child表示子布局声明的大小,B-blank表示剩余布局的大小,P-percent表示子布局占据父布局剩余布局的比例,则子布局最终的实际大小R-reality为:R = C + B * P
(1).android:layout_width/android:layout_height 设置为 wrap_content布局呈现如下形式:
(2).android:layout_width/android:layout_height 设置为match_parent布局呈现如下形式:
2.****注: 若新增RelativeLayout(相对布局)
进入Android Sudio安装目录 \plugins\android\lib\templates\activities\common\root\res\layout\simple.xml.ftl (可备份一份)
按下图 将 android.support.constraint.ConstraintLayoutt 替换成 RelativeLayout
********其他类型布局可用类似方法修改
(1).子类控件相对子类控件:值是另外一个控件的id
android:layout_above----------位于给定控件之上 android:layout_below ----------位于给定控件之下
android:layout_toLeftOf -------位于给定控件左边 android:layout_toRightOf ------位于给定控件右边
android:layout_alignLeft -------左边与给定ID控件的左边对齐 android:layout_alignRight ------右边与给定ID控件的右边对齐
android:layout_alignTop -------上边与给定ID控件的上边对齐 android:layout_alignBottom ----底边与给定ID控件的底边对齐
android:layout_alignBaseline----对齐到控件基准线
(2).相对父容器
android:layout_alignParentLeft="true" ------相对于父靠左
android:layout_alignParentTop="true"-------相对于父靠上
android:layout_alignParentRight="true"------相对于父靠右
android:layout_alignParentBottom="true" ---相对于父靠下
android:layout_centerInParent="true" -------相对于父即垂直又水平居中
android:layout_centerHorizontal="true" -----相对于父即水平居中
android:layout_centerVertical="true" --------相对于父即处置居中
下图android:layout_alignParentLeft="true" 与android:layout_alignParentTop="true" 在同一位置
(3)相对于父容器位置:
android:layout_margin="10dp" android:layout_marginLeft="10dp"
android:layout_marginRight ="10dp" android:layout_marginTop="10dp" android:layout_marginBottom="10dp"
(4)新特性
android:layout_alignStart---------------------将控件对齐给定控件的头部
android:layout_alignEnd----------------------将控件对齐给定控件的尾部
android:layout_alignParentStart--------------将控件对齐到父控件的头部
android:layout_alignParentEnd---------------将控件对齐到父控件的尾部
3.FrameLayout(帧布局)
后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡(具体是遮挡部分还是全部,就得看上面的布局比起下面的布局,大小问题了)。