2017-05-26 10 views
0

最初のページでは、ソフトキーボードを無効にして他のページに移動することができます。Webビューのソフトキーボードを無効にする/有効にする

しかし、最初のページに戻ると、キーボードを無効にすることはできません。

これは変です。

しかし、私はホームキーを押して、私のアプリに戻ってください。キーボードは再び無効になります。これがうまくいかない場合は、フォーカスを得て、いくつかの他のビューがあるかもしれません

protected void hideKeyboard(View view) { 
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
} 


@Override 
public void onPageFinished(WebView view, String url) { 
    if (url.endWith("first.html")) { 
     webview.setFocusable(false); 
     hideKeyboard(view); 
    } else { 
     webview.setFocusable(true); 
    } 
} 

答えて

0

はこれを試してみてください。あなたは、フォーカスを持つビューを検索し、非表示にキーボードを強制的に動作するように、このようなメソッドを使用することができます:

protected void hideKeyBoard() { 
    View view = this.getCurrentFocus(); 
    if (view != null) { 
     InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
    } 
} 
0

私は完璧に動作し、私自身の答えを見つけました。

@Override 
public void onPageFinished(WebView view, String url) { 
    if (url.endWith("first.html")) { 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); 
     // we have to clear focus that gain at other pages. 
     View currentFocus = getWindow().getCurrentFocus(); 
     if (currentFocus != null) { 
      currentFocus.clearFocus(); 
     } 
    } else { 
     getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); 
    } 
} 
関連する問題