Android软键盘的一些注意事项

xiaoxiao2021-02-28  122

1.软键盘弹出,会把原来的界面挤上去

需要在manifests文件的中对应的<Activity>标签中加入

android:windowsoftinputmode="adjustpan"

如果要屏幕向上移动,则改为adjustResize|stateVisible

常用的就这两个,其他不需要记,用了再查。

2.强制收起和显示虚拟键盘

代码:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); //强制隐藏 imm.hideSoftInputFromWindow(editText.getWindowToken(), 0) ; //强制显示 imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED); //打开与否的状态 boolean isShown = imm.isActive();

列子,创建dialog包含edittext,直接弹出键盘

代码:

final EditText et = new EditText(AndroidTest.this); final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); AlertDialog.Builder builder = new AlertDialog.Builder(AndroidTest.this) .setTitle("备注") .setView(et) .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { imm.hideSoftInputFromWindow(et.getWindowToken(), 0); //强制隐藏键盘 } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { imm.hideSoftInputFromWindow(et.getWindowToken(), 0); //强制隐藏键盘 } }); AlertDialog etDialog = builder.create(); etDialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { imm.showSoftInput(et, InputMethodManager.SHOW_FORCED); } }); etDialog.show();

3.软键盘回车键功能

在xml布局文件的<EditText>标签下,加入android:imeOptions="actionSearch"

代码中:

et_search.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { //do sth ... } return false; } });

常用的有actionNext,actionDone,actionSearch。字面意思。

转载请注明原文地址: https://www.6miu.com/read-68871.html

最新回复(0)