这里的,这将隐藏键盘从任何地方解决方案。
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