Android监听键盘显示和隐藏

问题概况:横板cocos2dx游戏,点击输入框弹出键盘时,界面要求跟随网上平易,不能挡住输入框。这种问题只出现在非全屏键盘到情况下。

方案1:mainActivity重写onconfigurationChanged,监听屏幕方向旋转,添加Android:configChanges="orientation|keyboard"

缺点全屏下无效,如果设置为非全屏,<activityandroid:theme="@android:style/Theme.NoTitleBar.Fullscreen" />,去掉Fullscreen

这样会显示系统状态栏。否掉!

方案2:弹出键盘时势必引起layout布局的变化,监听布局的变化然后计算偏移,即可算出是否时显示或隐藏键盘。

//获取rootviewmRoot=this.getWindow().getDecorView();

全局键盘显示和隐藏不会触发

//添加布局变化监听root.getViewTreeObserver().addOnGlobalLayoutListener(newOnGlobalLayoutListener(){@OverridepublicvoidonGlobalLayout(){Rectrect=newRect();root.getWindowVisibleDisplayFrame(rect);introotInvisibleHeight=root.getRootView().getHeight()-rect.bottom;if(rootInvisibleHeight<=100){//通知c++做想做的事hideKeyBoardHandler();}else{showKeyBoardHandler();}}});

以上!另外对APP进行在线全方位的安全性、兼容性测试,我都会用这个:www.ineice.com


更多相关文章

  1. 对android里布局文件当中的TextView对象设置事件监听,但是不响应
  2. Android布局优化之Include(一)
  3. Android基础UI篇------六种基本布局
  4. android UI进阶之布局的优化
  5. android处理键盘事件之物理按键 (一)
  6. android 按百分比设置布局
  7. Android输入系统解析及Native层模拟按键方案

随机推荐

  1. Mysql数据库的主从同步配置
  2. Mysql实现简易版搜索引擎的示例代码
  3. 详细聊聊MySQL中慢SQL优化的方向
  4. MySQL8.0的WITH查询详情
  5. Prometheus 监控MySQL使用grafana展示
  6. MySQL命令无法输入中文问题的解决方式
  7. 当面试官问mysql中char与varchar的区别
  8. mysql 索引合并的使用
  9. 一文带你了解Mysql主从同步原理
  10. 基于Redo Log和Undo Log的MySQL崩溃恢复