我的应用程序中有三个EditText小部件,其中一个小部件的XML如下所示。它们主要起作用,但问题是实际的小部件位于我的设备屏幕的底部。当我点击小部件,并显示数字小键盘时,它完全覆盖文本输入窗口,我无法看到我正在键入的数字。我可以修改TextView,以便在我的设备上显示键盘时,它还会显示我当前正在键入的号码吗?
<EditText
android:id="@+id/EditTextPrices" android:layout_width="100dip"
android:layout_height="wrap_content" android:inputType="number|numberDecimal"
android:singleLine="true" android.imeOptions="actionDone"/>
另一个问题是,当我完成键入一个数字,而不是将我返回到主活动屏幕时,它会打开下一个TextEdit小部件的数字小键盘。我不希望这种情况发生。我曾经以为设置android.imeOptions =“actionDone”会导致键盘消失并在我输入数字后完成,但不是这样。如何阻止“下一个”窗口出现?
答案 0 :(得分:1)
将android:windowSoftInputMode =“adjustPan”添加到活动的清单中。这将导致活动向上滚动,以便焦点编辑文本始终在屏幕上。
答案 1 :(得分:1)
查看将android:windowSoftInputMode添加到清单文件中。 “adjustPan”因为它的价值可能就是你想要的,虽然我发现当你输入内容的时候,它有时候无法解释在软键盘上方占据的空间。
答案 2 :(得分:1)
使用adjustPan的其他建议是好的,另一个想法是将您的布局放在滚动视图中。
关于你的第二个问题,你如何处理actionDone?
例如,这就是我隐藏键盘的方式(或者在按完键盘后做任何你想做的事情)。
final EditText editTextPrices = (EditText) findViewById(R.id.editTextPrices);
editTextPrices.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView view, int actionID, KeyEvent event) {
if (actionID == EditorInfo.IME_ACTION_DONE) {
InputMethodManager imm = (InputMethodManager) MyClass.this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(bugemailaddress.getWindowToken(), 0);
// DO OTHER HANDLING OF INPUT HERE
return true;
}
return false;
}
});