這裏的,這將隱藏鍵盤從任何地方解決方案。
1st在您選擇的活動中創建狀態的偵聽器和將執行關閉的方法(基於打開狀態)。
public class MainActivity extends SherlockFragmentActivity {
private boolean mKeyboardOpen = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate()");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// add "keyboard open listener"
final View v = findViewById(R.id.pager);
v.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int hRoot = v.getRootView().getHeight();
int hView = v.getHeight();
int heightDiff = hRoot - hView;
// if more than 150 pixels, its probably a keyboard...
mKeyboardOpen = heightDiff > 150;
Log.d(TAG, "hRoot=" + hRoot + ", hView=" + hView + ", mKeyboardOpen=" + mKeyboardOpen);
}
});
}
public void closeSoftKeyboard() {
if (mKeyboardOpen) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}
}
}
第二呼叫((MainActivity) getActivity()).closeSoftKeyboard();
從任何地方,例如您的EditText的OnClickListener()
。
提示:我正在使用ViewPager根視圖(R.id.pager),但您應該用您的視圖根ID替換它。
你爲什麼要在edittext焦點上隱藏鍵盤? –
我想用我自己的鍵盤 –
你試過我的回答嗎?請讓我知道它是否對你有所幫助。 – Saran