CONTENT

输入框位于可以上下拖动的panel中,当输入框获得焦点时,滑动panel容器之后,输入框的input子节点还会保留在原来的位置。
此处需要对panel添加一个按下的事件,当监听到panel被按下时,panel获得焦点便可解决该问题,代码为:

private initListener() : void
{
     this.panel2.on(Laya.Event.MOUSE_DOWN,this,this.panelDown);
}
private panelDown() : void
{
     this.panel2.focus = true;
}

经过多次测试发现,在移动设备,直接按在输入框上然后拖动仍然会有该问题,此处使用了当输入框获得焦点时禁止panel移动,输入框失去焦点时允许panel移动,该方案体验并不好,因为当用户按在输入框上拖动时并不能拖动,反而导致输入法弹了出来,禁用panel移动的方法为:

private focusCallBack() : void
{
     this.panel2 .vScrollBar.touchScrollEnable = false;
     this.panel2 .vScrollBar.autoHide = false;
}
private blurCallBack() : void
{
     this.panel2 .vScrollBar.touchScrollEnable = true;
     this.panel2 .vScrollBar.autoHide = true;
}