====在界面初始化之后就要弹出软键盘,与收起软键盘

来源:互联网 发布:android 离线数据缓存 编辑:程序博客网 时间:2024/05/29 01:56
imm.showSoftInput(addNewMember, InputMethodManager.RESULT_SHOWN);//                imm.showSoftInput(addNewMember,InputMethodManager.SHOW_FORCED);                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);


/* //问题的原因似乎是必须等待UI绘制完成后弹出软键盘的代码才会有效。于是就采用了上面的方法。需要注意的是,在此之前必须让edittext获取焦点,不然也是无效的。        Timer timer = new Timer(); //设置定时器        timer.schedule(new TimerTask() {            @Override            public void run() { //弹出软键盘的代码                imm.showSoftInput(addNewMember, InputMethodManager.RESULT_SHOWN);//                imm.showSoftInput(addNewMember,InputMethodManager.SHOW_FORCED);                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);            }        }, 300); //设置300毫秒的时长*/

在弹出键盘之前要注意设置edit text

addNewMember = (EditTextTypeFaceXh) findViewById(R.id.membersmanager_addnewmember);addNewMember.setFocusable(true);addNewMember.requestFocus();

收起键盘(本质上一样)

InputMethodManager imm = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);                imm.hideSoftInputFromWindow(addNewMember.getWindowToken(),0);
/* InputMethodManager imm = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if(imm.isActive()&&getCurrentFocus()!=null){     if (getCurrentFocus().getWindowToken()!=null) {         imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);     } }*/

0 0
原创粉丝点击