coordinatorlayout的基本结构介绍.pdf
coordinatorlayout的基本结构
想象一下,你走进了一个超级复杂的建筑施工现场。这里有各种
各样的工人,就像不同的安卓视图组件一样,各自有着不同的任
务,但是又需要协同工作才能把这座大楼盖好。而我呢,就像是
这个施工现场的一个小监工,今天要给大家讲讲
coordinatorlayout这个特殊的“建筑结构”。
先来说说我的朋友小李吧,他就像是布局中的一个普通视图组
件。小李每天的工作很单纯,就是在自己的小角落里干活,不管
别人怎么样。有一天,他在那里自言自语:“我就这么自己干自
己的,多轻松为什么要管别人呢?”这时候,经验丰富的老张走
过来了,老张就像是coordinatorlayout中的一个特殊规则制定
者。老张拍了拍小李的肩膀说:“小子,你这样想可就错喽。你
看咱们这整个工程,就像一个大的布局,如果大家都各自为政,
那这楼能盖好吗?”小李挠了挠头,有点不理解。
老张接着说:“你看啊,coordinatorlayout就像是一个大的框
架,它里面有很多像你这样的小部分。但是呢,这个框架可不像
普通的框架,它有自己独特的结构。”老张一边说着,一边用脚
在地上画着简单的示意图。“在这个coordinatorlayout里,有
一个主从关系的概念。就好比我们这里,有的工人负责搬运大的
建筑材料,那他们就是主要的力量,而像你负责一些小的零碎工
作,你的工作就得配合他们的进度。”
我在旁边听着,也不住地点头。老张又继续解释:“比如说,有
个工人在往上吊钢材的时候,你要是还在下面瞎晃悠,不注意安
全,那可就麻烦了。这就像是在coordinatorlayout里,如果一
个视图组件的动作没有和其他组件协调好,那整个布局就会乱
套。”
再看看coordinatorlayout的结构里面,有一些特殊的行为模
式。就像我们施工现场的信号员一样,他负责协调各个工作区域
的行动。在coordinatorlayout里,也有类似的机制。当一个视
图组件发生变化的时候,比如大小改变或者位置移动,它会通过
一种特殊的方式通知其他相关的组件。这就好比是一个工人发现
了某个地方有危险,他要大声呼喊告诉周围的人一样。
而且,coordinatorlayout里面还有一种嵌套的关系。这就像我
们的建筑有不同的楼层,每个楼层又有不同的房间一样。在这个
布局里,一些视图组件可以嵌套在其他组件里面,它们之间又有
着特定的协调关系。我不禁想,这多像我们生活中的家庭关系
啊,家庭成员之间相互嵌套在家庭这个大的结构里,彼此的行为
也需要协调。
我们再回到施工现场,小李这时候已经有点开窍了。他说:“老
张啊,我好像有点懂了。就像我在这工地里,虽然我干的是小
活,但是也得看着大的方向,跟着大家的节奏走,这样整个工程
才能顺利进行,对吧?”老张笑着说:“哈小子,你可算明白
了。”
从这个施工现场的例子来看,coordinatorlayout的基本结构就
像是一个有着明确规则、主从关系、嵌套关系并且能够让各个组
件协调工作的一个框架。它不是简单地把各个视图组件放在一
起,而是像一个精密的机器一样,每个零件都知道自己该在什么
时候做什么动作,和其他零件如何配合。这就是
coordinatorlayout的基本结构,一个看似复杂,但是只要理解
了它的规则就会发现其实很有趣的布局结构。