EditBox 光标偏移

ScrollView中的content添加layout组件

设置Layout:
image

添加足够多的EditBox到content节点下:
image

滚动scrollView,EditBox光标会偏移:
image

这个怎么解决?

不添加layout也是会偏移。

应该就是 bug,我尝试过在父节点下挂一个 EditBox,然后父节点 scale = 0.3;active = false;当显示这个父节点并同时 tween scale -> 1,EditBox 的输入框位置将随机(看卡顿情况);推测应该是 EditBox 在初始化 input 输入框位置时异步且取了一次位置,然后后续的位置更改不触发了。

好吧,我去看看源码~~ :rofl:

image
应该这个地方出了问题,
上面的场景有的 EditBox正常,有的偏移。

现在解决了么? 好烦啊 :rofl:

触发Edit Did Began 事件的时候调用:
editBox._impl._updateMatrix();

1赞

3.8.3应该已经解决了,试试3.8.3?

1赞

不是,是这样的,因为界面的对话框弹出来的时候会缩放一下,缩放比例从0.7->1.0->1.1->1.0,经历了这个过程,对话框上面的EditBox的光标就跑偏了。确定解决了么 :rofl:

你用的是什么版本的?是3.8.3的么?

缩放的这个过程 之前有用户提过的,应该是修复过的。

你先弄个demo测试下3.8.3,如果3.8.3还有问题,你把这个demo发给我,我帮忙看看

3.8.2和3.8.1是有这个问题 ,并且还会有输入框报错问题。我们项目解决方案修改底池代码:.第一次输入调用一下刷新坐标 下面是代码

EditBox.prototype.onDestroy = function () {

if (this._impl) {

    View.instance.targetOff(this._impl);

    this._impl.clear();

}

};

//@ts-ignore

EditBox.prototype._implresize = function (this: EditBox) {

if (this._impl) {

    //@ts-ignore

    this._impl._resize();

}

};

//@ts-ignore

EditBox.prototype._init = function (this: EditBox) {

this._updatePlaceholderLabel();

this._updateTextLabel();

//@ts-ignore

this._isLabelVisible = true;

this.node.on(NodeEventType.SIZE_CHANGED, this._resizeChildNodes, this);

const impl = (this._impl = new EditBox._EditBoxImpl());

impl.init(this);

this._updateString(this._string);

this._syncSize();

this.node.on(NodeEventType.TRANSFORM_CHANGED, this._implresize, this);

};

//@ts-ignore

EditBox.prototype._onTouchBegan = function (this: EditBox, event: EventTouch) {

if (!this.firstResize) {

    this._implresize();

    this.firstResize = true;

}

event.propagationStopped = true;

};

用3.8.3吧,3.8.3修改了editbox更新的时机

3.8.3的确修复了这个问题

可以不升吗?升了怕有别的问题,不敢升啊,有没有别的解决办法

这游戏引擎已经10年了,还会出现这种低级的问题,你们不会自责吗

现在解决了吗?我也遇到了,不知道怎样解决

升级版本,3.8.3

不用这么麻烦,输入框父节点的刷新下就行了,亲测有效
xxparent.getComponent(Widget).updateAlignment();

1赞