您的位置:首页 > 移动开发 > Android开发

Android软键盘的一些注意事项

2017-07-11 17:29 267 查看

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
。字面意思。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: