首先,导航分为三级。

在之前,我曾经做过抽屉导航的案例,不过那个是二级的。

既然二级的能做,三级的也不应该很复杂。脱呗!

呃…不是,是往里面再拖元件呗!

这个思路,很简单。

二级导航,是把二级导航项都放在一个动态面板中,然后,点击一级导航时呈现这个动态面板,并带有向下推动元件的效果。

三级导航呢?

在二级导航所在的动态面板中再放入动态面板?

大家可以自己尝试,这个思路实现不了。

因为,这样的三级导航展开时没有办法推动下方其它一级导航和二级导航的内容。

这特么就尴尬了!

是什么原因造成的呢?

动态面板会把它里面的内容和外部的内容隔开。

打个比方,就好比拍电影里的错位。

看起来是真的,实际上毛都挨不到!

注意,我说的是吻戏!

那么,如何在一个动态面板里面的三级导航展开时,能够推动动态面板外部的其他元件呢?

我的思路是这样。

在三级导航展开之前,先把外层动态面板隐藏并拉动元件。

这样,所有二级导航会变成收起状态。

然后,让三级导航展开。

这时,外层动态面板自动适应展开后的尺寸(注意外层动态面板要设置自动适应内容尺寸),高度变长。

最后,再把外层动态面板呈现出来,这样就会按照展开之后的高度推动下方元件。

不管你有没有看懂这个思路,都不妨碍下面的实现。

你可以看下面的实现步骤时,对照一下上面的思路,将会更容易理解。

第一步,我们先放入导航的相关元件,这里我使用了一些占位符,大家也可以使用矩形,设置成其他样式。

第二步,我们把三级导航的三个元件全选,在上面点击鼠标右键,选择【转换为动态面板】的选项;然后,把这个新出现的动态面板命名为“ThreePanel”;并且,再次点击鼠标右键或者在快捷功能区中,把这个动态面板【设为隐藏】。

第三步,我们先来完成三级导航展开和收起的交互效果。

为二级导航元件的【鼠标单击时】添加用例,设置动作为【切换可见性】,勾选目标元件“ThreePanel”,并且勾选设置中的【推动/拉动元件】。

完成上面的设置之后,大家可以预览一下效果。

点击二级导航的时候,就能够点一下呈现三级导航,再点一下隐藏三级导航。

进进出出的感觉是不是很爽?

第四步,我们把二级导航和三级导航全选,同样点击鼠标右键,选择【转换为动态面板】的选项;然后,把这个新出现的动态面板命名为“Submenu”。

注意,如果是拖入的动态面板尺寸是固定的,需要在属性中勾选【自动调整为内容尺寸】的选项。

第五步,双击动态面板“Submenu”,再双击第一个状态“State1”,继续为二级导航元件的【鼠标单击时】添加动作。

我们先添加【隐藏】外层动态面板“Submenu”的动作,并且勾选【拉动元件】的选项。

注意:在组织动作区域中,新添加的动作会在下方出现,要把它拖动到上方,这样的顺序才不会出现问题。

也就是前面说的,在三级导航展开之前,我们先收起外层动态面板,并拉动元件。

等三级导航展开之后,这个时候外层动态面板自动高度变长了,再把它呈现出来,并且推动下方元件。

这样,就有了正确的展开效果。

当然,这样处理对收起三级导航同样有效。

第六步,继续为二级导航元件的【鼠标单击时】添加第3个动作,也就是上面提到的【呈现】外层动态面板“Submenu”,同时,在【更多选项】中选择【推动元件】的选项。

完成上述动作的添加之后,二级导航元件的交互如下图所示。

第七步,把做好的二级导航和三级导航一起选中,根据需求复制几份摆放好。

注意,如下图所示,复制时,不要单独复制二级导航和三级导航,必须二级导航和三级导航一起复制,这样交互的对应关系才会继续有效。

第八步,为一级导航添加【鼠标单击时】的用例,设置动作【切换可见性】,勾选动态面板“Submenu”,同时在设置中勾选【推动/拉动元件】。

添加了这个交互之后,点击一级导航时,就能点一下呈现二级导航,再点一下隐藏二级导航。

第九步,点击一级导航的时候,三级导航默认是收起的状态。

继续为一级导航元件添加【鼠标单击时】的交互,设置动作【隐藏】所有的三级导航所在的动态面板“ThreePanel”,并且在隐藏的设置中都要勾选【拉动元件】的选项。

第十步,把以上完成的所有内容全选,根据需求复制几份,并摆放整齐。

同样要注意,复制时,不要单独某个元件,必须所有元件一起复制,这样交互的对应关系才会继续有效。

通过以上步骤,就完成了三级片的制作。

额。。。三级导航的制作!