2011-05-25 23 views
30

我有一個應用程序,在主視圖上有一個EditText元素。 這意味着當我的應用程序加載時,軟鍵盤默認顯示。在應用程序加載時隱藏軟鍵盤

我想能夠隱藏加載的鍵盤, 所以它不顯示,直到我點擊EditText視圖。

我該如何管理?

回答

23

你可以做些簡單的事情。它添加到的LinearLayout(或任何其他佈局是根):

<LinearLayout 
... 
android:focusable="true" 
android:focusableInTouchMode="true" 
... 
/> 
+3

接受的答案不適用於我,我已經有stateHidden集。這個建議很有效。我將它應用於XML佈局,而不是在父視圖組上使用android:focusable =「true」和android:focusableInTouchMode =「true」。 – 2012-01-05 22:49:16

+2

這應該是被接受的答案。 – 2016-02-25 15:48:40

5
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 

這將隱藏在所有情況下。

EditText edtView=(EditText)findViewById(R.id.editTextConvertValue); 
    edtView.setInputType((InputType.TYPE_NULL); 
75

在你AndroidManifest.xml

<activity android:name="com.your.package.ActivityName" 
      android:windowSoftInputMode="stateHidden" /> 

更多windowSoftInputMode細節可以發現here

當用戶輸入新的Activity(即使EditText控件獲得焦點)時,此設置將隱藏軟鍵盤。軟鍵盤僅在用戶單擊編輯框控件時纔會顯示。

+3

這解決了所有我的問題......沒有bug:曾爲d – 2011-05-25 12:17:00

+2

... ...精湛也許 – 2013-02-25 05:15:58

+0

我不知道英語,那麼你在哪裏可以看到只在用戶點擊編輯框_時才顯示的解釋?該文檔說:「_當用戶選擇活動時隱藏軟鍵盤 - 也就是說,當用戶肯定導航到活動時,而不是因爲離開另一活動而背對此活動。」。不要誤解我的意思。你的解釋是完全清楚的。但是文檔不是。 – 2018-02-27 13:20:15