在Android中,我们如何使设备始终键盘中可见的应用程序? 顶部显示的应用程序要呈现的内容和底部总是显示键盘。
Answer 1:
添加机器人:windowSoftInputMode =“stateAlwaysVisible”在AndroidManifest.xml文件的活动:
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysVisible" />
在我的测试应用程序这显示了应用程序的启动虽然没有固定的有,但可以按后退按钮被开除键盘。
为了确保键盘总是可见,您可能需要创建自己的键盘为您的应用程序的用户界面的一部分。 这里是一个教程向您展示如何用KeyboardView做到这一点: http://www.fampennings.nl/maarten/android/09keyboard/index.htm
Answer 2:
你必须有一个EditText
的布局和需要程度EditText
基类。 然后覆盖onKeyPreIme()
方法,并返回 现在你的键盘会总是可见,不能由返回键被开除。
注意 :因为你的onKeyPreIme()
方法返回true
使用返回键,你不能退出你的应用程序。
例:
public class CustomEdit extends EditText {
public CustomEdit(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
Log.e("Log", "onKeyPreIme");
return true;
//return super.onKeyPreIme(keyCode, event);
}
}
onKeyPreIme() - Android开发者
Answer 3:
我发现,工作对我来说,保持软键盘可见在我的编辑后一种方式myEditText
类领域EditText
。 关键是要覆盖onEditorAction
方法,让它返回true
myEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
return true;
}
});
否则有onEditorAction
返回true
只有“完成”键单击(后IME_ACTION_DONE
),否则false
myEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId==EditorInfo.IME_ACTION_DONE){
Log.i(LOG_TAG, "IME_ACTION_DONE");
return true;
}
return false;
}
});
(另见这个答案在onEditorAction
法)
添加android:windowSoftInputMode="stateAlwaysVisible
清单文件帮助有在活动显示的软键盘开始,但它并没有阻止它再次消失,只要‘完成’键被编辑后点击。
文章来源: Android: How to make the keypad always visible?