[英]Android: How to make the keypad always visible?
在android中,我們如何讓設備鍵盤在應用程序中始終可見? 頂部顯示應用程序要呈現的內容,底部顯示鍵盤。
將android:windowSoftInputMode =“stateAlwaysVisible”添加到AndroidManifest.xml文件中的活動:
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateAlwaysVisible" />
在我的測試應用程序中,這顯示了應用程序啟動時的鍵盤,雖然它沒有固定在那里,但可以通過按后退按鈕解除。
要確保鍵盤始終可見,您可能必須創建自己的鍵盤作為應用程序UI的一部分。 這是一個教程,向您展示如何使用KeyboardView執行此操作: http : //www.fampennings.nl/maarten/android/09keyboard/index.htm
您的布局中必須有一個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);
}
}
在EditText
類的myEditText
字段中進行編輯后,我找到了一種方法可以讓軟鍵盤保持可見。 訣竅是覆蓋onEditorAction
方法,使其返回true
myEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
return true;
}
});
或者只有在“完成”鍵單擊( IME_ACTION_DONE
)之后才有onEditorAction
返回true
否則為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
到Manifest文件有助於在活動開始時顯示軟鍵盤,但是在編輯后單擊“完成”鍵時,它不會阻止它再次消失。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.