使用反射调用系统Hide方法。
首先看一下setShowSoftInputOnFocus方法的描述
Sets whether the soft input method will be made visible when this TextView gets focused. The default is true.
Hide:
2696
2697 @android.view.RemotableViewMethod
2698 public final void setShowSoftInputOnFocus(boolean show) {
2699 createEditorIfNeeded();
2700 mEditor.mShowSoftInputOnFocus = show;
2701 }
从以上代码可以看到,setShowSoftInputOnFocus方法是Hide,即不可见的,采用普通方式根本调用不了。
使用反射调用的方法如下:
private void setShowSoftInputOnFocus(boolean show) {
try {
Class<EditText> cls = EditText.class;
Method setShowSoftInputOnFocus;
setShowSoftInputOnFocus = cls.getMethod("setShowSoftInputOnFocus",
boolean.class);
setShowSoftInputOnFocus.setAccessible(true);
setShowSoftInputOnFocus.invoke(this, show);
} catch (Exception e) {
e.printStackTrace();
}
}