Egret社区

[Egret Engine] native 0.1.19 输入框

2019-8-7 17:59
1691
产品 Egret Engine 版本 native 0.1.19
复现概率 100% 平台 Android 任意版本
复现步骤 任意输入框,高度设置大一些,垂直居中对齐,必然出现
问题描述 使用native打包,最新的0.1.19版本,安卓平台,输入框使用了垂直居中的情况下,输入的时候,文字会移动到输入框最上面去,相当于如果使用顶对齐,就是正常的。
另外说句题外话,为什么native就不开源呢?
错误代码
BUG截图
使用native打包,最新的0.1.19版本,安卓平台,输入框使用了垂直居中的情况下,输入的时候,文字会移动到输入框最上面去,相当于如果使用顶对齐,就是正常的。
另外说句题外话,为什么native就不开源呢?

分享到 :
0 人收藏

1 个回复

倒序浏览
uyaer  登堂入室 | 2019-8-8 11:24:26
本来想找个低版本的测试下,看看有没有问题,结果把0.1.18版本的lib替换,居然不能初始化,应该是和引擎版本绑定了的,我用的最新的版本5.2.25,所以就只能从其他方面去解决了,然后终于找到一个临时解决方法,因为我的输入框控件都很有规律,都是这样的[mw_shl_code=applescript,true]<e:Group y="670" width="365" height="60" horizontalCenter="0.5">
                        <e:Image source="center_num_bg_png" scale9Grid="6,8,16,29" left="0" right="0" top="0" bottom="0"/>
                        <e:EditableText id="inpTel" text="" anchorOffsetY="0" anchorOffsetX="0" verticalAlign="middle" size="24" prompt="请输入手机号码" promptColor="0xffffff" width="350" x="9" height="58" y="0" textColor="0xffffff" restrict="0-9" inputType="tel"/>
                </e:Group>[/mw_shl_code]
都用了一个Group包着的,然后并且第一个元素都是输入框背景,所以,就好解决了,通过点击image来触发输入框的setFocus()
然后整理成一个方法,循环查找输入框处理,在创建面板或者场景的时候,手动调用一次方法就搞定了,这样等新版本发布了,修复了bug,屏蔽这个方法就可以了,完美!
[mw_shl_code=applescript,true]private static _fixedInputSize(inp: eui.EditableText) {
        let h = inp.height;
        let size = inp.size;
        if (h == size) return;
        let bg = inp.parent.getChildAt(0);
        if (bg instanceof eui.Image) {
            inp.height = size;
            inp.y += (h - size) / 2;
            bg.addEventListener(egret.TouchEvent.TOUCH_TAP, () => {
                if(inp.touchEnabled){
                    inp.setFocus();
                }
            }, this);
        }
    }[/mw_shl_code]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部