守望者--AIR技术交流

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: ANE FlasCC 炼金术
查看: 675|回复: 0

[移动平台] 微信聊天页面中下方输入框的问题

[复制链接]
  • TA的每日心情
    无聊
    2016-4-19 18:18
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    8

    主题

    15

    帖子

    1698

    积分

    版主

    Rank: 16Rank: 16Rank: 16Rank: 16

    威望
    8
    贡献
    1
    金币
    801
    钢镚
    29

    开源英雄

    发表于 2015-3-23 18:02:56 | 显示全部楼层 |阅读模式
    1. 去 -app.xml 里设置 <softKeyboardBehavior></softKeyboardBehavior> 标签(记得反注释)里面的值写 none

    2. 自己监听 输入框 或 stage 的 SoftKeyboardEvent 相关事件, 判断软件盘的弹出和收回。http://help.adobe.com/zh_CN/Flas ... tKeyboardEvent.html

    3. 通过 stage.softKeyboardRect 可以动态得到软键盘的物理像素尺寸, 注意, 不同的手机型号, 不同的操作系统, 软键盘的尺寸可能都不一样, 所以要动态获取
    [img]file:///C:\Users\ADMINI~1\AppData\Local\Temp\[5UQ[BL(6~BS2JV6W}N6[%S.png[/img]http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/display/Stage.html#softKeyboardRect

    4. Flex 的 UI 永远以逻辑像素来布局, 因此从 stage.softKeyboardRect 获取到的物理像素要转换为逻辑像素再用, 逻辑像素 = 物理像素 / 缩放因数.
    Flex 缩放因数 = FlexGlobals.topLevelApplication.runtimeDPI / FlexGlobals.topLevelApplication.applicationDPI;
    记得 applicationDPI 永远设置为 160, 然后 runtimeDPIProvider 可以自己写实现类, 自己返回想要的 runtimeDPI

    5. 当监听到软键盘弹出时, 自己设置你相关 UI 组件的 skin.currentState = "A" 或 "B"
    比如 "A" 就是软件盘弹出了, 这个时候软件盘会遮住你屏幕下半部分的 UI, 那么在 "A" 这个皮肤状态下, 你事先应该调整 "A" 状态下相关组件的布局, 布局时用的所有宽高, 间隔, 坐标, 全部都用逻辑像素, 坚决不能直接用物理像素, 最终的效果就是 "A" 状态下把你 UI 的输入框不会被软键盘遮住, UI 输入框的下方被软键盘遮住, 并且还要考虑输入框与软键盘的间隔这些细节.

    6. 当监听到软键盘收拢时, 切换你对应组件的 skin.currentState = "B", 你懂的, 就不多说了
    以上步骤如果你都理解对了, 并且做对了, 那么可以应对至少 90% 的不同型号的设备

    以上摘自 qq群(!非常实验室! 23477140)

    评分

    参与人数 1威望 +2 金币 +20 收起 理由
    shawn00 + 2 + 20 很给力!

    查看全部评分

    守望者AIR技术交流社区(www.airmyth.com)
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    
    关闭

    站长推荐上一条 /4 下一条

    QQ|手机版|Archiver|网站地图|小黑屋|守望者 ( 京ICP备14061876号

    GMT+8, 2019-8-20 22:20 , Processed in 0.041072 second(s), 37 queries .

    守望者AIR

    守望者AIR技术交流社区

    本站成立于 2014年12月31日

    快速回复 返回顶部 返回列表