Android: getting a soft keyboard height

As a title, I just want to get the height of the keyboard.

Since there are so many Android phones, it’s hard to handle them.

So, is there an API for this?

Thanks to everyone.

+1
source share
1 answer

Use this code in your activity:

iSoftkeyboardHeight = viewMain.getHeight(); // viewMain - root view of your activity int y = iSoftkeyboardHeight - 2; int x = 10; int counter = 0; int height = y; int iSoftkeyboardHeightNow = 0; Instrumentation instrumentation = new Instrumentation(); while( true) { final MotionEvent m = MotionEvent.obtain( SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, y, 0); final MotionEvent m1 = MotionEvent.obtain( SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0); boolean ePointerOnSoftkeyboard = false; try { instrumentation.sendPointerSync(m); instrumentation.sendPointerSync(m1); } catch (SecurityException e) { ePointerOnSoftkeyboard = true; } if( !ePointerOnSoftkeyboard) { if( y == height) { if( counter++ < 100) { Thread.yield(); continue; } } else if( y > 0) iSoftkeyboardHeightNow = iSoftkeyboardHeight - y; break; } y--; m.recycle(); m1.recycle(); } if( iSoftkeyboardHeightNow > 0) iSoftkeyboardHeight = iSoftkeyboardHeightNow; else iSoftkeyboardHeight = 0; // now use iSoftkeyboardHeight 
0
source

Source: https://habr.com/ru/post/1200643/


All Articles