2017-11-08 8 views
1

私はアプリの没入型モードを維持する必要があります。 アプリは没入型モードでフルスクリーンのWebviewを持っていますが、問題はwebviewのコンテンツにテキストボックスがあることです。 ユーザがテキストボックスをタッチすると、ソフトキーボードがトリガされ、没入モードが無効になります。 テキストボックスがフォーカスを失ったときに問題を解決しました。これは、JavaScriptフレームを再アクティブ化された没入型モードに再度トリガーします。しかし問題は、ソフトキーボードが表示されているときの非表示/戻るボタンです。Androidでキーボードイベントを検出しない

here is the image

私はonKeyDowndispatchKeyEventonBackPressedを試みたが、デバッグするとき、それらのどれもトリガーなかったです。ソフトキーボードの可視性を取得するための

答えて

1

、あなたはこれをしなければならない。

コーディング
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 
    } 
} 
}); 

ハッピー!!

+0

私はレイアウト全体の親ビューでこれをバインドする必要がありますか? –

関連する問題