关于安卓手机调出键盘导致页面变形的解决思路

直入主题。
图1、竖屏,键盘未调出。可以看到transform的旋转角度是0;页面尺寸和屏幕尺寸一致


图2、横屏,键盘未调出。可以看到transform的旋转角度是90;页面尺寸和屏幕尺寸一致(宽度一样,高度被缩放)

图3、竖屏,键盘调出,页面被挤压。可以看到transform的旋转角度是90;页面尺寸和屏幕尺寸一致(宽度一样,高度被缩放)

通过图2和图3的对比,可以看出在竖屏状态下呼出键盘,div的宽依然对应的是screen的宽度,仅仅是高度变小了,也就是说键盘呼出时,页面并没有旋转。所以猜测之所以显示会被旋转,可能是因为cocos引擎在判断是否横屏时采用是对比body(或者div)的宽高,如果宽大于高,就认为是横屏了,从div#Cocos2dGameContainer和cavas的width、height值能够看出这一点,这两个节点的width取得是body的height,height取得是body的width。
解决思路:
思路1:优化判断横屏、竖屏的逻辑,不通过页面的宽高判断横竖屏,而是通过sreen属性
思路2:在键盘呼出前,锁定页面尺寸,不允许旋转或者缩放;在键盘收起后,解除锁定
麻烦cocos的童鞋考虑一下解决这个问题:slightly_smiling:

1赞