精确获取android软键盘高度
16lz
2021-01-26
直接上代码:
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Resources resources = MainActivity.this.getResources(); int navigationBarResourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); int navigationBarHeight = resources.getDimensionPixelSize(navigationBarResourceId); int statusBarResourceId = resources.getIdentifier("status_bar_height", "dimen", "android"); int statusBarHeight = resources.getDimensionPixelSize(statusBarResourceId); int totalbarHeight = navigationBarHeight + statusBarHeight; Rect r = new Rect();
rootView.getWindowVisibleDisplayFrame(r);int screenHeight = rootView .getRootView().getHeight() ;
int heightDiff = screenHeight - (r. bottom - r. top) ; if (heightDiff > totalbarHeight) { int realKeyboardHeight = heightDiff - statusBarHeight ; Log. i( "Log" , "realKeyboardHeight = " + realKeyboardHeight) ; rootView.getViewTreeObserver().removeOnGlobalLayoutListener( this) ; } }}) ;
更多相关文章
- OpenGl-ES2.0 For Android(安卓)读书笔记(一)
- Android——View.setTag()
- ViewDragHelper_v4的滑动视图帮助类_解释和代码
- Android(安卓)中保存图片的代码
- Android之TabHost组件美化
- Android中如何移动图片
- Android截图功能代码
- Android(安卓)Audio代码分析14 - testPlaybackHeadPositionIncre
- Android下编写HelloWorld