2017-05-26 65 views
0
@Override 
public void onPageFinished(WebView view, String url) { 
    if (url.endWith("first.html")) { 
     webview.setFocusable(false); 
    } else { 
     webview.setFocusable(true); 
    } 
} 

在第一页,我可以禁用软键盘,并启用它时,我导航到其他页面。禁用/启用软键盘为webview

但是当我回到第一页时,键盘不能被禁用。

这很奇怪。

但是,如果我按Home键,然后回到我的应用程序。键盘将被禁用。

回答

0

试试这个:

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); 
    } 
} 

如果这不起作用有可能是获得焦点的一些其他看法。您可以使用的方法类似这样的合作,找到重点的看法,并迫使键盘被隐藏:

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); 
    } 
}