以上是设计的视图,以下是Android平台出现的效果:
可以看到弹出的输入法框,顶部一直是顶着EditBox文字的底部,而不是框的底部的,导致底部有一部分被遮挡住了。
换行之后,倒是可以完全显示出底部了:
以上是设计的视图,以下是Android平台出现的效果:
可以看到弹出的输入法框,顶部一直是顶着EditBox文字的底部,而不是框的底部的,导致底部有一部分被遮挡住了。
换行之后,倒是可以完全显示出底部了:
建议EditBox也能够像普通Label一样,提供文本的对齐方式:Horizontal Align、Vertical Align。
还有能够支持图文混排,类似于文本+图片的方式。
好像我要求的太过分了呢
你这是拿Creator开发应用么。。。
是滴
这么叼的引擎,就该物尽其用!
拿来做应用感觉会遇到很多问题。
耗电啊。。。不过还是支持你拿 Creator 来做应用。。。
嗯,被你们说对了,的确有很多问题,耗电、权限……,这些只能寻找绕一点的方式解决,曲线救国嘛
想到了一个比较挫的解决办法:给EditBox赋两个响应:Editing Did Began、Editing Did Ended,分别对应两个函数:beginInput、endInput。
在beginInput里,先获取视图尺寸cc.director.getVisibleSize(),这个尺寸是不包含弹出键盘区的,重设下cc.view.setDesignResolutionSize;同理,endInput里把视图尺寸也重设回去。
必须注意的是,键盘完全弹出需要一点时间,由于Creator没有屏幕键盘弹出收回的响应事件,所以我们只能手动延迟一段时间(大概1秒)再改变视图尺寸。
oriW: 0,
oriH: 0,
inpW: 0,
inpH: 0,
beginInput: function () {
var s = cc.director.getVisibleSize();
this.oriW = s.width;
this.oriH = s.height;
// 刷新窗口尺寸(延迟执行)
var self = this;
this.scheduleOnce(function () {
s = cc.director.getVisibleSize();
self.inpW = s.width;
self.inpH = s.height;
cc.view.setDesignResolutionSize(s.width, s.height, cc.view.getResolutionPolicy());
cc.log("beginInput setDesignResolutionSize:" + s.width + "," + s.height);
}, 1);
},
duringInput: function () {
},
endInput: function () {
// 刷新窗口尺寸(延迟执行)
var self = this;
this.scheduleOnce(function () {
cc.view.setDesignResolutionSize(this.oriW, this.oriH, cc.view.getResolutionPolicy());
var s = cc.director.getVisibleSize();
cc.log("endInput setDesignResolutionSize:" + s.width + "," + s.height);
}, 1);
},
以上方法在安卓平台上无效
安卓平台上,怎么获取弹出屏幕键盘后,剩下的可视区尺寸?
还没有,暂缓上原生平台的,等以后官方解决后再考虑。
谢谢 6个字符
这个楼主有解决办法了吗?我安卓端也遇到了这样的问题
您好 像请问您 editbox遮挡的问题最后你是如何处理的
没处理,项目搁置了
监听布局改变