目录最终效果拆开讲讲标签由模型生成,不由代码写死两处边界处理把 contentItem 和 background 换掉animDone 是干什么的几个可以调的参数什么时候用小结完整代码工程下载有些标签栏的标签数量不固定,比如后台系统按模块开页签、浏览器开新标签,事先不知道会有几个。这种情况不能把标签一个个写死。思路就是把标签当成一组数据来管理:加标签就是加一条数据,删标签就是删一条数据,界面自动跟着变化。最终效果点「添加标签」就多出一个标签,新标签从中心弹出来;点「删除当前」标签收起消失,后面的自动往前补位。拆开讲讲整个动态标签就四块,一块一块说。标签由模型生成,不由代码写死TabBar本身是个容器,它的子项由Repeater生成,背后的数据来源是一个ListModel。所以标签有几条,取决于模型里有几条记录。三个按钮做的事都很短:往模型里加一条、删掉当前这条、清空全部。加完数据,Repeater会自动补一个新的TabButton出来,不需要你手动创建对象;删掉数据后对应的按钮会被销毁,后面的标签自动往前挪。这就是数据驱动的省事之处:你操作的是数据,位置关系交给视图。ListModel的数量是个会自动通知的属性,底部那行标签个数显示不用手动刷新,模型一变它自己就重算。/