Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android EditText, soft keyboard show/hide event?

Is it possible to catch the event that Soft Keyboard was shown or hidden for EditText?

like image 835
shkim Avatar asked Sep 25 '10 08:09

shkim


2 Answers

Hi I'd used following workaround:

As far as my content view is a subclass of LinearLayout (could be any other view or view group), I'd overridden onMeasure method lilke following:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    final int proposedheight = MeasureSpec.getSize(heightMeasureSpec);
    final int actualHeight = getHeight();

    if (actualHeight > proposedheight){
        // Keyboard is shown
    } else {
        // Keyboard is hidden
    }

    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}

This workaround helped me to hide some controls when keyboard is showing and bring back otherwise.

Hope this would be useful.

like image 134
woodshy Avatar answered Nov 14 '22 18:11

woodshy


There actually isn't such an event to catch. The IME is simply showing and hiding its window; the feedback you get from this is the window manager causing your own window's content to resize if you have put it in resize mode.

like image 18
hackbod Avatar answered Nov 14 '22 18:11

hackbod