cra*_*ool 13 java keyboard android android-edittext
我正在编写一个应用程序,它使用以下代码在运行的应用程序上在屏幕上绘制一个edittext:
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
PixelFormat.TRANSLUCENT);
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.addView(mEditText, params);
Run Code Online (Sandbox Code Playgroud)
edittext的xml是:
<EditText
android:id="@+id/mEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="3"
android:inputType="textAutoComplete|text"
android:focusable="true"
android:focusableInTouchMode="true" />
Run Code Online (Sandbox Code Playgroud)
然而,专注于此并没有调出键盘.我也试过用onFocusListener以编程方式提出它:
mEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) {
Log.d("", "Has focus");
((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(v, InputMethodManager.SHOW_IMPLICIT);
} else {
Log.d("", "Lost focus");
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是,虽然这被称为,从logcat看,没有任何反应.到目前为止,我发现显示键盘的唯一方法是使用:
getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(0, 0);
Run Code Online (Sandbox Code Playgroud)
但这似乎是在屏幕上输入而不是在编辑文本中.当编辑文本显示时我也尝试过清晰可聚焦但无济于事.
我猜这个问题是因为我正在使用一个"浮动窗口",但必须有一种方法可以使这项工作,因为Playstore上的浮动计算器等应用程序存在输入.任何人都有任何想法?我很难过:(
使用WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息和示例,请访问以下链接:https : //github.com/atifmahmood29/overlays-floating-window-like-facebook-messenger
归档时间: |
|
查看次数: |
4804 次 |
最近记录: |