2017-11-08 2 views
1

So muss ich den immersiven Modus einer App behalten. Die App hat eine Vollbild-Webansicht im Immersive-Modus, aber das Problem ist, dass der Inhalt der Webansicht eine Textbox hat. Wenn der Benutzer das Textfeld berührt, wird das Softkeyboard ausgelöst, wodurch der Immersive-Modus deaktiviert wird. Ich löste das Problem, wenn Textbox seinen Fokus verlor, wird es eine Javascriptschnittstelle auslösen, um den immersiven Modus wieder zu aktivieren. Aber das Problem ist die Verbergen/Zurück-Taste, wenn das Softkeyboard angezeigt wird.Detect Hide Tastaturereignis auf Android

here is the image

Ich versuchte onKeyDown, dispatchKeyEvent und onBackPressed aber keiner von ihnen Auslösung wurde beim Debuggen.

Antwort

1

Für Sichtbarkeit der Soft-Tastatur bekommen, müssen Sie dies tun:

contentView.getViewTreeObserver().addOnGlobalLayoutListener(new 
ViewTreeObserver.OnGlobalLayoutListener() { 
@Override 
public void onGlobalLayout() { 

Rect r = new Rect(); 
contentView.getWindowVisibleDisplayFrame(r); 
int screenHeight = contentView.getRootView().getHeight(); 

int keypadHeight = screenHeight - r.bottom; 
if (keypadHeight > screenHeight * 0.15) { 
    // keyboard is opened 
} 
else { 
    // keyboard is closed 
    } 
} 
}); 

Glücklich Codierung !!

+0

also muss ich dies in der übergeordneten Ansicht des gesamten Layouts binden? –