文章目录

  • 问题
  • 解决办法
    • Android
    • iOS
    • 调用

问题

在手机上,点击输入框,会弹出输入法的键盘,这个时候如果UI没有做自适应处理,则会被输入法键盘窗口挡住,如下图微信是做了自适应的,在Unity中如何获取手机输入法键盘窗口的高度,从而对UI做自适应上移呢?

解决办法

Android

// 获取手机键盘高度
public static int GetKeyboardHeight()
{using (var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")){var unityPlayer = unityClass.GetStatic<AndroidJavaObject>("currentActivity").Get<AndroidJavaObject>("mUnityPlayer");var view = unityPlayer.Call<AndroidJavaObject>("getView");var dialog = unityPlayer.Get<AndroidJavaObject>("b");if (view == null || dialog == null)return 0;var decorHeight = 0;if (true) //includeInput{var decorView = dialog.Call<AndroidJavaObject>("getWindow").Call<AndroidJavaObject>("getDecorView");if (decorView != null)decorHeight = decorView.Call<int>("getHeight");}using (var rect = new AndroidJavaObject("android.graphics.Rect")){view.Call("getWindowVisibleDisplayFrame", rect);return Display.main.systemHeight - rect.Call<int>("height") + decorHeight;}}
}

iOS

// 获取手机键盘高度
public static int GetKeyboardHeight()
{return (int)TouchScreenKeyboard.area.height * Display.main.systemHeight / Screen.height;
}

调用

float k = gameObject.GetComponent<RectTransform>().sizeDelta.y;
float keyboardHeight = GetKeyboardHeight();
float keyboardHeightUi = keyboardHeight * k / Display.main.systemHeight;
m_Rt.anchoredPosition = Vector3.up * keyboardHeightUi;

Unity手机输入法弹出键盘挡住游戏UI的问题相关推荐

  1. 判断手机是否弹出键盘,改变了手机页面高度,对应inputStatus的状态改变相关控件的大小和位置

    inputResizeBodyHeight() {// 判断手机是否弹出键盘,改变了手机页面高度,对应inputStatus的状态改变相关控件的大小和位置var oldHeight =document ...

  2. h5页面元素聚焦手机无法弹出键盘

    移动端h5做手机app的直播视频碰到的问题 h5页面元素聚焦手机无法弹出键盘 问题是这样产生的: 公司最近要搞一个直播的h5活动页内嵌到app上,当然我就来负责这个了. 但是这个项目我是半道接手的,原 ...

  3. 创建手机页面弹出键盘的时候背景图片被挤上去的解决办法

    RT,想让背景图片全部覆盖页面而又不会因为输入时弹出键盘挤压背景图片的话,可以将height: 100%改为min-height:100%哈哈.

  4. [Phonegap+Sencha Touch] 移动开发68 Sencha Touch弹出键盘挡住输入框的解决办法

    原文地址:http://blog.csdn.net/lovelyelfpop/article/details/49679331 现象: sencha touch有一个缺点:当formPanel里的输入 ...

  5. js 监听手机输入法弹出

    <script>var winHeight = $(window).height(); //获取当前页面高度$(window).resize(function () {var thisHe ...

  6. 微信小程序input弹出键盘挡住文字的解决办法

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 解决思路:阻止键盘弹起时,自动上推页面.输入框获取焦点的时候让页面绝对定位,相对底部 100 像素.失去焦点的 ...

  7. 9. 弹出键盘挡住input

    1.) react 中 <input className="inp3" placeholder="密码" type="password" ...

  8. 苹果手机屏幕尺寸和弹出键盘高度总结

    最近做一个苹果手机界面,遇到输入框被弹出键盘挡住的问题,安卓手机不会出现这种情况,于是就总结了一下苹果手机的屏幕尺寸和弹出键盘的大小. iPhoneX 屏幕大小:5.8寸 屏幕尺寸:375 x 812 ...

  9. iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案

    iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案 参考文章: (1)iOS下Html页面中input获取焦点弹出键盘时挡住input解决方案 (2)https://www.cn ...

最新文章

  1. JFileChooser和FileFilter的使用
  2. Docker核心技术
  3. java ee期末项目相关
  4. 举例详细说明javascript作用域、闭包原理以及性能问题(转)
  5. 网络压缩《网络压缩论文整理》
  6. 记录一次JDK版本问题,引发的思考
  7. Delphi Web前端开发教程(1):基于TMS WEB Core框架
  8. java ognl表达式_ognl 详解 Struts2中的OGNL表达式 | 学步园
  9. 倾斜摄影Smart3D建模培训视频 附文档数据下载
  10. 实战案例,手把手教你用 Python 构建电商用户画像
  11. 制作u盘winpe启动盘_分享| 手把手教你制作winPE工具箱,U盘启动
  12. linux如何设置tab补全命令,Ubuntu下命令TAB自动补全 complete使用
  13. Ubuntu虚拟机全屏问题
  14. cvte在线笔试 android,CVTE在线笔试
  15. 各大互联网公司技术分享
  16. java修饰词严格程度_Java修饰词的总结
  17. android系统模拟麦克风,在Android模拟器中使用麦克风(Java Android初学者)
  18. 选定目标和非功利性学习
  19. PCA,LDA的C++实现(内附代码~)
  20. vue3 获取当前路由参数

热门文章

  1. nacos配置mysql链接
  2. pca 累积方差贡献率公式_PCA的原理及详细步骤
  3. 计算机系统结构期末知识点总结(最后一课)
  4. PR 2019 快速入门(6)
  5. 分享一些 VsCode 各场景相关的高级调试与使用技巧
  6. 让数据说话 QQ邮箱中转站速度评测/应用
  7. QTableWidgetItem setText并无效果
  8. 利用Python抢回在蚂蚁森林把逝去的能量
  9. Android程序员的未来真的是个死胡同吗?解决了这些问题后我并不觉得如此
  10. lolloding界面显示服务器连接失败,设计师谈:将屏蔽Loading界面的Ping值