Search code examples
androidkeyboardcocos2d-x

Getting the dimensions of the soft keyboard


Is there a way to know the size of the keyboard that is shown in the screen?

I am using Cocos2dx for programming, but I want to know the height of the keyboard shown in screen in the part of Android or the part of Cocos, it does not matter.

I know that Keyboard has a getHeight() method but I don't want to create new keyboards, i want to use the default one.


Solution

  • We did it with this

    myLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    
                    @Override
                    public void onGlobalLayout() {
    
                        Rect r = new Rect();
                        parent.getWindowVisibleDisplayFrame(r);
    
                        int screenHeight = parent.getRootView().getHeight();
                        int heightDifference = screenHeight - (r.bottom - r.top);
                        Log.d("Keyboard Size", "Size: " + heightDifference);
    
                    }
                });
    

    We only resize views with the keyboard, so we could use this.