聊天头种与编辑文本弹出。但点击里面的键盘不会弹出

问题描述:

我已经实现了聊天头类型为我的应用程序使用服务弹出。我在里面使用了编辑文本。聊天头种与编辑文本弹出。但点击里面的键盘不会弹出

但问题是,当我点击编辑文本只有光标是可见的,键盘不会弹出。甚至无法选择或复制粘贴该编辑文本内的文本。任何帮助?谢谢

+0

你能发表一些代码吗? –

我找到了解决我的问题。

我用下面的代码前面: -

全局变量: -

private WindowManager mWindowManager; 
WindowManager.LayoutParams params; 

然后在服务的onCreate

mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 


    //Add the view to the window. 
    params = new WindowManager.LayoutParams(
      WindowManager.LayoutParams.WRAP_CONTENT, 
      WindowManager.LayoutParams.WRAP_CONTENT, 
      WindowManager.LayoutParams.TYPE_PHONE, 
      WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
      PixelFormat.TRANSLUCENT); 

问题是与FLAG_NOT_FOCUSABLE,使用FLAG_NOT_TOUCH_MODAL代替

但现在又的问题是,虽然我可以用我的floatingView拿到键盘,但键盘不来的其他应用程序,甚至后退按钮停止工作。

因此,要解决这个问题我用浮动这使浮动UI键盘和禁用之间切换UI按钮,这样后退按钮和键盘适用于其他应用程序。

我用下面的代码是一样的: -

private void enableKeyPadInput(Boolean enable) { 
    mWindowManager.removeViewImmediate(mFloatingView); 

    if (enable) { 
     params = new WindowManager.LayoutParams(
       WindowManager.LayoutParams.WRAP_CONTENT, 
       WindowManager.LayoutParams.WRAP_CONTENT, 
       WindowManager.LayoutParams.TYPE_PHONE, 
       WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, 
       PixelFormat.TRANSLUCENT); 
    } else { 
     params = new WindowManager.LayoutParams(
       WindowManager.LayoutParams.WRAP_CONTENT, 
       WindowManager.LayoutParams.WRAP_CONTENT, 
       WindowManager.LayoutParams.TYPE_PHONE, 
       WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
       PixelFormat.TRANSLUCENT); 
    } 

    mWindowManager.addView(mFloatingView, params); 
} 

如果真被传递给这个方法,然后键盘开始工作。如果传递false,则其他应用程序开始工作。

这是我对这个问题的解决方法。有没有其他方法可以达到比这更好的效果?