簡體   English   中英

Android:如何使鍵盤始終可見?

[英]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);
    }
}

onKeyPreIme() - Android開發人員

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM