panel是LAYA提供的一种滚动组件,LIST也可以滚动。
给panel直接添加子元素,发现panel的滚动区域有点大,最后一个子元素可以一直滑到panel中间,而策划想要的效果确实panel的最后一个子元素,滑到panel边缘就不要再滑动。
实现方法是在UI编辑器里面给panel添加一个子元素box,把原本需要添加到panel的元素添加到box,设置一个变量tempY记录box所有子元素的高度及间隙总和,每添加一个元素,tempY累加子元素的高和相邻元素间隙(最后一个子元素可以不加相邻元素间隙),最后设置box的高度为tempY即可实现panel最后一个子元素滑到边缘就停止滑动
//***************************************************分割线,下面是LAYA源码分析******************************************************
LAYA panel组件源码
Panel在创建时,会自动给panel添加一个_contentBox
/**@inheritDoc */
override protected function createChildren():void {
super.addChild(_content = new Box());
}
然后重写了一系列add和remove方法,重写成add和remove都是对panel的子元素_contentBox进行的add和remove
/**@inheritDoc */
override public function addChild(child:Node):Node {
child.on(Event.RESIZE, this, on