数字 EditText 暂时显示文本键盘(不活动的 InputConnection)
Numeric EditText shows Text keyboard momentarily (inactive InputConnection)
我一直遇到这个奇怪的问题,即单击 ListView
中的 EditText
打开数字键盘,然后闪烁文本键盘,然后返回到数字键盘。即使在其他 EditText
之间切换,它也不会再发生。如何让文本键盘不显示?
这是相关的调试控制台输出:
W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper: getSelectedText on inactive InputConnection
W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper: getSelectedText on inactive InputConnection
W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
这是我在 activity_main
中的 EditText
:
<EditText
android:id="@+id/editText_lot1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText_lot2"
android:layout_alignBottom="@+id/editText_lot2"
android:layout_marginLeft="145dp"
android:layout_marginStart="145dp"
android:layout_alignParentLeft="true"
android:inputType="number"
android:ems="7"
android:textSize="14sp" />
我尝试过的:
如果我删除 android:inputType
,那么一切正常,除了现在出现拼写检查错误,而且键盘显然是文本键盘。
我试着在 onCreate()
的 MainActivity
里放一些东西,比如
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
我搜索了这里的问题,发现one similar case with no answers.有解决办法吗?
通过将以下内容放入我的 AndroidManifest.xml
找到了解决方案:
android:windowSoftInputMode="adjustPan"
在我对应的<activity>
块下。从评论中 here 找到的解决方案。
我一直遇到这个奇怪的问题,即单击 ListView
中的 EditText
打开数字键盘,然后闪烁文本键盘,然后返回到数字键盘。即使在其他 EditText
之间切换,它也不会再发生。如何让文本键盘不显示?
这是相关的调试控制台输出:
W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper: getSelectedText on inactive InputConnection
W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection
W/IInputConnectionWrapper: getSelectedText on inactive InputConnection
W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
这是我在 activity_main
中的 EditText
:
<EditText
android:id="@+id/editText_lot1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editText_lot2"
android:layout_alignBottom="@+id/editText_lot2"
android:layout_marginLeft="145dp"
android:layout_marginStart="145dp"
android:layout_alignParentLeft="true"
android:inputType="number"
android:ems="7"
android:textSize="14sp" />
我尝试过的:
如果我删除 android:inputType
,那么一切正常,除了现在出现拼写检查错误,而且键盘显然是文本键盘。
我试着在 onCreate()
的 MainActivity
里放一些东西,比如
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
我搜索了这里的问题,发现one similar case with no answers.有解决办法吗?
通过将以下内容放入我的 AndroidManifest.xml
找到了解决方案:
android:windowSoftInputMode="adjustPan"
在我对应的<activity>
块下。从评论中 here 找到的解决方案。