因为需求,进入页面要你自动弹出键盘
查了资料,试了发现无论怎么改方法都不能 弹出
最后给控件加了定时器,延时1秒,居然可以了
private void showKeyboard(Context context, final View view){
// 必须给控件加这个方法,否则无效
view.requestFocus();
Timer timer = new Timer(); //设置定时器
timer.schedule(new TimerTask() {
@Override
public void run() { //弹出软键盘的代码
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, InputMethodManager.RESULT_SHOWN);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
}
}, 1000); //设置1000毫秒的时长
}
想了一下,google 的方法应该是页面都加载完成才可以弹出 键盘
顺便在放上收起的方法
/**
* 隐藏软键盘
*
* @param context
* @param view
*/
public static void hideSoftKeyboard(Context context, View view) {
if (view == null)
return;
InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(
Context.INPUT_METHOD_SERVICE);
if (inputMethodManager.isActive())
inputMethodManager.hideSoftInputFromWindow(
view.getWindowToken(), 0);
}
特记录该问题,给有这个需求的小伙伴提供个方案,少入点坑