软键盘隐藏
在AndroidManifest.xml对应的activity中添加
android:windowSoftInputMode="stateHidden|adjustPan"
软键盘显示
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
InputMethodManager inputManager = (InputMethodManager) mEditContent.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(mEditContent, 0);
}
},
500);
很奇怪,不知道为什么直接调用软键盘显示不成功,只能延时异步调用,如果是因为页面还为加载完成而无法显示的话,但是我在onWindowFocusChanged
中调用也无法调起。现在还是没有头绪。
edittext光标跟随软键盘显示和隐藏
/**
* 设置 键盘 打开 关闭监听
*
* @param editText
*/
public void keyboardListener(final EditText editText) {
final View decorView = getWindow().getDecorView();
final int height = getWindowManager().getDefaultDisplay().getHeight();
decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect rect = new Rect();
decorView.getWindowVisibleDisplayFrame(rect);
//计算出可见屏幕的高度
int displayHight = rect.bottom - rect.top;
//获得屏幕整体的高度
int hight = decorView.getHeight();
//获得键盘高度
int keyboardHeight = hight - displayHight;
if (keyboardHeight > (height / 3)) {// 软键盘 打开
editText.setCursorVisible(true);
} else {// 软键盘 关闭
editText.setCursorVisible(false);
}
}
});
}