我已经使用服务实现了为我的应用程序弹出的聊天头类型。我在里面使用了编辑文本。
但问题是,当我点击编辑文本时,只有光标可见,键盘不会出现。甚至无法选择或复制粘贴编辑文本中的文本。有帮助吗?感谢
答案 0 :(得分:0)
我找到了解决问题的方法。
我之前使用了以下代码: -
全局变量: -
private WindowManager mWindowManager;
WindowManager.LayoutParams params;
然后在onCreate of Service
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 。
但现在再次出现的问题是,虽然我能够使用我的浮动视频获得键盘但键盘不适用于其他应用程序,即使后退按钮也停止工作。
所以为了解决这个问题,我在Floating 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);
}
如果将true传递给此方法,则键盘开始工作。如果传递了false,则其他应用程序开始工作。
这是我解决问题的方法。有没有其他方法可以达到相同的效果呢?
答案 1 :(得分:0)
感谢@Narendra Jadon
这也许更好
<xsl:value-of select="concat(format-number((Amounts/NetUnitPrice * 100),'#############0'), '00')"/>