DialogFragment:在编辑文本中输入数字后键盘自动隐藏
DialogFragment: Keyboard hides automatically after typing numbers in edittext
我有一个非常简单的 fragmentDialog 布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/note"
android:layout_width="wrap_content"
android:layout_marginRight="25dp"
android:layout_marginLeft="25dp"
android:layout_height="wrap_content">
<EditText
android:id="@+id/post_it_note_area"
android:layout_width="match_parent"
android:layout_height="200dp"
android:textColor="@color/gray_text_primary"
android:textSize="16sp"/>
但是当我在 editText 中输入数字时,键盘会自动关闭。
从日志中我得到:
W/ViewRootImpl? Dropping event due to no window focus: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_7, scanCode=0, metaState=0, flags=0x6, repeatCount=0, eventTime=1548366109, downTime=1548366109, deviceId=-1, source=0x0 }
W/IInputConnectionWrapper? showStatusIcon on inactive InputConnection
我是 运行 android 4.4.4 Moto X 2013。
是什么导致了这种奇怪的行为?如何避免键盘隐藏?
编辑:
在我输入数字时关闭的不是键盘而是整个应用程序(没有崩溃)。我还注意到,当我单独键入一个数字而不是在一个字母附近键入一个数字时,应用程序会关闭:"hello a6" -> ok,"hello 6" -> 立即关闭)。我在 editText 中添加了一个 textwatcher,并且 none 的侦听器方法被触发了。请帮助我!
编辑 2:
我现在尝试使用带有 Android 5 的三星 S5,但问题没有出现,可能与 Android 版本或设备有关?
编辑 3:
坏消息,如果我键入删除或 "Sym" 键,该问题将再次出现在 S5 上。与以前一样,应用程序关闭
好的..我终于找到了导致这种行为的原因..
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
getActivity().finish();
return true;
}
});
return dialog;
}
我编写了这段代码来关闭按返回键的 dialogFragment,但它显然有问题。
奇怪的是,我希望从此完成 activity 输入任何字符..
我有一个非常简单的 fragmentDialog 布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/note"
android:layout_width="wrap_content"
android:layout_marginRight="25dp"
android:layout_marginLeft="25dp"
android:layout_height="wrap_content">
<EditText
android:id="@+id/post_it_note_area"
android:layout_width="match_parent"
android:layout_height="200dp"
android:textColor="@color/gray_text_primary"
android:textSize="16sp"/>
但是当我在 editText 中输入数字时,键盘会自动关闭。 从日志中我得到:
W/ViewRootImpl? Dropping event due to no window focus: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_7, scanCode=0, metaState=0, flags=0x6, repeatCount=0, eventTime=1548366109, downTime=1548366109, deviceId=-1, source=0x0 }
W/IInputConnectionWrapper? showStatusIcon on inactive InputConnection
我是 运行 android 4.4.4 Moto X 2013。 是什么导致了这种奇怪的行为?如何避免键盘隐藏?
编辑: 在我输入数字时关闭的不是键盘而是整个应用程序(没有崩溃)。我还注意到,当我单独键入一个数字而不是在一个字母附近键入一个数字时,应用程序会关闭:"hello a6" -> ok,"hello 6" -> 立即关闭)。我在 editText 中添加了一个 textwatcher,并且 none 的侦听器方法被触发了。请帮助我!
编辑 2: 我现在尝试使用带有 Android 5 的三星 S5,但问题没有出现,可能与 Android 版本或设备有关?
编辑 3: 坏消息,如果我键入删除或 "Sym" 键,该问题将再次出现在 S5 上。与以前一样,应用程序关闭
好的..我终于找到了导致这种行为的原因..
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Dialog dialog = super.onCreateDialog(savedInstanceState);
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
getActivity().finish();
return true;
}
});
return dialog;
}
我编写了这段代码来关闭按返回键的 dialogFragment,但它显然有问题。 奇怪的是,我希望从此完成 activity 输入任何字符..