zoukankan      html  css  js  c++  java
  • 软键盘不弹出问题

    问题 :

    系统函数

    public boolean showSoftInput(View view, int flags);
    

    第一个参数表示当前要接收软键盘输入的View,第二个参数是软键盘显示时的控制参数。

     
    public void toggleSoftInput(int showFlags, int hideFlags);
     
    

    它同样有两个参数,第一个参数是显示软键盘时使用的标记,第二个参数是隐藏软键盘时使用的标记。

    (该方法来在显示和隐藏软键盘之间切换,也就是说,如果当前软键盘是隐藏的,那么执行toggleSoftInput方法时会显示软键盘,如果当前软键盘是显示的,那么执行toggleSoftInput方法时会隐藏软键盘。)

    but, sometimes ,It  dosn't work!

    原因:当前布局必须已经完成加载,如果还未绘制完成,则showSoftInput()方法不起作用。特别的,在Activity的onCreate()中执行showSoftInput()是不起作用的。如果要再布局文件加载后就显示软键盘,可以通过postDelayed的方式来延迟执行showSoftInput()。延迟时间不能太短,一般要在50ms以上。

    解决:It seems that the keyboard is initially displayed but hidden by something else

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    editText.postDelayed(new Runnable()
    {
    @Override
    public void run()
    {
    editText.requestFocus();
    imm.showSoftInput(editText, 0);
    }
    }, 100);

     or

    InputMethodManager imm = (InputMethodManager) getDelegate().getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
    
  • 相关阅读:
    读书笔记-NIO的工作方式
    高精度运算-阶乘累积求和
    面试题-Java设计模式举例
    Web请求过程总结
    python 之栈的实现
    python之数据结构链表实现方式
    python 之分发包
    python之smtplib发邮件
    装饰器习题-接受参数的装饰器
    python之装饰器
  • 原文地址:https://www.cnblogs.com/SA226343/p/6839427.html
Copyright © 2011-2022 走看看