| 一、简介 开发一个APP,有一个漂亮的界面是很重要的,因为用户第一眼看到的就是我们的界面,界面好看了才能更加吸引大家来使用,并且写逻辑代码之前一般也要先搭好布局,所以我们要能熟练的使用各种布局方式和各个组件。
 本次要说的是如下六种基本布局方式:
 1、线性布局(LinearLayout)
 2、相对布局(RelativeLayout)
 3、帧布局(FrameLayout)
 4、表格布局(TableLayout)
 5、网格布局(GridLayout)
 6、绝对布局(AbsoluteLayout)
 
 其中,表格布局是线性布局的子类。网格布局是android 4.0后新增的布局
 
 本次先来了解线性布局(LinearLayout)
 
 二、使用方式
 1、线性布局(LinearLayout)
 最常用的一种布局方式,具有如下属性:
 
 "android: orientation"               控制子控件排列方向,属性值垂直(vertical)和水平(horizontal),默认水平方向
 
 ”android:layout_width"            宽度,属性值wrap_content,match_parent或者fill_parent,也可以自己设置数值,单位dp
 
 "android:layout_height"           高度属性值wrap_content,match_parent或者fill_parent,也可以自己设置数值,单位dp
 
 "android:layout_weight"          权重,用来分配当前控件在剩余空间的大小,使用权重一般要把分配该权重方向的长度设置为 零,比如在水平方向分配权重,就把width设置为零。
 
 "android:layout_gravity"          相对于父控件位置
 
 "android:gravity"                     子控件的位置,常用属性值有center、center_vertical(垂直居中)、center_horizontal(水平居中)、top、 bottom、left、right等
 
 示例代码:
 
 [XML] 纯文本查看 复制代码 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.company.helloworld.firstapplication.MainActivity">
    <!-- 上边LinearLayout -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="vertical">
        <!-- 控件1 -->
        <TextView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@color/colorAccent"
            android:gravity="center"
            android:text="1" />
        <!-- 控件2 -->
        <TextView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_gravity="right"
            android:background="@color/colorPrimary"
            android:gravity="center"
            android:text="2" />
    </LinearLayout>
    <!-- 分割线 -->
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/colorPrimary" />
    <!-- 下边LinearLayout -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:orientation="horizontal">
        <!-- 控件3 -->
        <TextView
            android:layout_width="50dp"
            android:layout_height="100dp"
            android:background="@color/colorAccent"
            android:gravity="center_vertical"
            android:text="3"
            android:textSize="18sp" />
        <!-- 控件4 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:background="@color/colorPrimary"
            android:gravity="center_horizontal"
            android:text="4"
            android:textSize="18sp" />
    </LinearLayout>
</LinearLayout>
效果图:
 
 
   
 注意:
 
 当orientation为vertical时,子控件设置android:layout_gravity="center_vertical"或者自身设置android:gravity="center_vertical"是无效的。
 同样当orientation为horizontal时,子控件设置android:layout_gravity="center_horizontal"或者自身设置android:gravity="center_horizontal"是无效的
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 |