猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Android中有什么方法可以获取设备虚拟键盘的高度
android中有什么方法可以在运行时获取android设备虚拟键盘的高度。其实我想在键盘上方显示文本框。
慕森卡
浏览 367
回答 3
3回答
白衣染霜花
是的,您可以在Viewtree Observer和全局布局侦听器的帮助下,尝试以下提到的步骤获取布局的根视图获取此根的Viewtree观察器,并在此之上添加全局布局侦听器。现在,无论何时显示软键盘,Android都会重新调整屏幕大小,您将在监听器上收到呼叫。这就是现在唯一需要做的就是计算重新调整大小后根视图与原始大小之间的高度差。如果差异大于150,则认为这是因为键盘已膨胀。以下是示例代码root.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){ public void onGlobalLayout(){ int heightDiff = root.getRootView().getHeight()- root.getHeight(); // IF height diff is more then 150, consider keyboard as visible. } });问候,Techfist
0
0
0
沧海一幻觉
我为此尝试了许多建议的方法,但似乎没有一种方法适用于Android SDL。我认为这是因为SDL显示是“全屏”,还是因为它位于“ AbsoluteLayout”中,因此“视图”的高度从未真正改变过。这种方法对我有用:mRootWindow = getWindow();mRootView = mRootWindow.getDecorView().findViewById(android.R.id.content);mRootView.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { public void onGlobalLayout(){ Rect r = new Rect(); View view = mRootWindow.getDecorView(); view.getWindowVisibleDisplayFrame(r); // r.left, r.top, r.right, r.bottom } });
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Android
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续