导言
本文从整体到局部,从常用布局(layout)到控件的设置,层层递进,一定要从前往后依次看
目录
1.常用布局方式
1.1 ConstraintLayout 约束布局
1.2 LinearLayout 线性布局
1.3 TableLayout 表格布局
1.4 GridLayout 瀑布布局
2.关于控件属性整合
2.1 放置位置
2.2 如何对一个控件或者文本的属性进行独立封装
2.3 如何将多个控件封装成一个整体
2.4 如何将2.3中子控件的值进行修改
3.看懂Kotlin类的构造原理(结合2.4)
3.1 构造器写在内部
3.2 简单写法
1.常用布局方式
1.1 ConstraintLayout 约束布局
一句话:就是可以在xml 中直接拖动各view在父容器中的位置,连接各View
如下图:(完全没必要写code,直接动手托就行)
1.2 LinearLayout 线性布局
一句话: 就是整个布局中控件只能水平一排,或者竖直一排
首先,默认orientation为horizontal水平排列,我们可以加上这段改为竖直排列
gravity 为控件权重 , 即各控件直接水平或竖直排列所占 长度的比值
(如 view_A 权重为1 , view_B权重为2, 且仅有AB两view,则Az占三分之一的长度)
效果图:
还有些属性:
1.3 TableLayout 表格布局
继承LinearLayout布局,把整个容器划分为rows × columns个网格,每个网格可以放置一个组件
每向TableLayout中添加一个TableRow就代表一行;
每向TableRow中添加一个一个子组件就表示一列;
如果直接向TableLayout添加组件,那么该组件将直接占用一行;
单元格大小控制:
1.4 GridLayout 瀑布布局
同样看作TableLayout,但GridLayout布局中的单元格可以跨越多行或多列,呈现长短不一的效果
2.关于控件属性整合
2.1 放置位置
在res->values文件夹内部,其中style需要自己创建Values Resourse File
colors.xml内部->整合颜色
dimens.xml内部->整合字体和控件大小
string.xml内部->整合文本信息
2.2 如何对一个控件或者文本的属性进行独立封装
style.xml内部 ->方便开发人员直接使用
使用方式: View内部 style = "找到这个style的name"
2.3 如何将多个控件封装成一个整体
在res下的layout文件夹内 新建Layout Resourse File
View相对论:
由 上文(常见布局方式)设置布局,整体看作一个父容器ViewGroup
外界调用时,整体相当于一个View
理解不了上面的话,可以看看下面的例子:
在这个layout.xml中,就是view的集合
可以在Fragment或者Acticity的layout.xml文件调用
调用方法: <include layout="通过之前xml的命名找"
2.4 如何将2.3中子控件的值进行修改
树立一个观点: 维护程序向来是:"只扩展,不修改"
将xml在布局子类中解析出来,找到每个控件,进行操作(如设置set,get方法)
方法一:构造器
方法二:init方法
3.看懂Kotlin类的构造原理(结合2.4)
在实例化类对象时,构造器内的直接 数据加载,方法实现
3.1 构造器写在内部
3.2 简单写法
这个时候需要init{},替代constructor初始化数据和操作
如下: