做相册的网站有哪些,如何选择做pc端网站,邓州市工程建设信息网,做淘宝素材网站哪个好用一、问题#xff1a;
Dialog中有输入框时#xff0c;显示后无法自动弹起软键盘#xff0c;原因就不赘述了#xff0c;自行Google。
一、解决办法#xff1a;
开启独立线程#xff0c;线程中使用while循环#xff0c;循环调用弹起软键盘方法#xff0c;直至showSoftI…一、问题
Dialog中有输入框时显示后无法自动弹起软键盘原因就不赘述了自行Google。
一、解决办法
开启独立线程线程中使用while循环循环调用弹起软键盘方法直至showSoftInput返回true则终止循环。循环内加入sleep避免调用次数过多。亲测循环不超过5次即可成功开启软键盘效果流畅丝滑。
注意不要用toggleSoftInput相关方法那样会使得你的软键盘管理混乱
public class KeyboardManager {private final String TAG KeyboardManager;private static volatile KeyboardManager mKeyboardManager;private InputMethodManager mInputMethodManager;public static synchronized KeyboardManager with() {if (mKeyboardManager null) {synchronized (KeyboardManager.class) {if (mKeyboardManager null) {mKeyboardManager new KeyboardManager();}}}return mKeyboardManager;}private KeyboardManager() {}public InputMethodManager getInputMethodManager() {if (null mInputMethodManager)mInputMethodManager (InputMethodManager) ApplicationExt.getInstance().getSystemService(Context.INPUT_METHOD_SERVICE);return mInputMethodManager;}public void show(View mView) {if (getInputMethodManager() null || null mView) {return;}mView.requestFocus();getInputMethodManager().showSoftInput(mView, 0);}Thread mThread;public void showDelayed(View mView) {if (getInputMethodManager() null || null mView) {return;}mView.requestFocus();mThread new Thread(new Runnable() {Overridepublic void run() {while (true) {if (mView.isShown() mView.isFocused()) {boolean isShow getInputMethodManager().showSoftInput(mView, 0);Log.i(TAG, keyboard is show isShow);if (isShow)break;else {try {Thread.sleep(20);} catch (InterruptedException e) {throw new RuntimeException(e);}}}Log.i(TAG, continue show keyboard);}}});mThread.start();}public void hide(View mView) {if (getInputMethodManager() null || null mView) {return;}mView.clearFocus();getInputMethodManager().hideSoftInputFromWindow(mView.getWindowToken(), 0);}
}