1. 程式人生 > >EditText是否自動彈出輸入法虛擬鍵盤(軟鍵盤)的問題

EditText是否自動彈出輸入法虛擬鍵盤(軟鍵盤)的問題

       在開發過程中,我們經常會碰到Activity中包含EditText控制元件時會自動彈出虛擬鍵盤的情形,其實這是由於EditText自動獲得焦點的緣故,只要讓EditText失去焦點就行了,解決辦法如下:

1.在Manifest.xml檔案中相應的Activity下新增如下程式碼即可:

android:windowSoftInputMode="stateHidden"

2.讓EditText失去焦點,用EditText的clearFocus即可:

EditText edit = (EditText)findViewById(R.id.edit);
edit.clearFocus();

3.強制隱藏Android輸入法視窗

EditText edit = (EditText)findViewById(R.id.edit);
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edit.getWindowToken(), 0);

4.EditText始終不彈出虛擬鍵盤

EditText edit = (EditText)findViewById(R.id.edit);
edit.setInputType(InputType.TYPE_NULL);

-------------------------------------------------我是分割線-------------------------------------------
    但有時,我們確實是想讓EditText自動獲得焦點並彈出軟鍵盤,在設定了EditText自動獲得焦點後,軟體盤不會彈出。注意:此時是由於剛跳到一個新的介面,介面未載入完全而無法彈出軟鍵盤。此時應該適當的延遲彈出軟鍵盤,如500毫秒(保證介面的資料載入完成,如果500毫秒仍未彈出,則延長至1000毫秒)。可以在EditText後面加上一段程式碼,例項程式碼如下:

		Timer timer = new Timer();
		timer.schedule(new TimerTask() {

			public void run() {
				InputMethodManager inputManager = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
				inputManager.showSoftInput(editText, 0);
			}

		}, 500);
方法二:給activity配置加入屬性android:windowSoftInputMode="adjustResize"。

相關推薦

EditText是否動彈輸入法虛擬鍵盤(鍵盤)的問題

       在開發過程中,我們經常會碰到Activity中包含EditText控制元件時會自動彈出虛擬鍵盤的情形,其實這是由於EditText自動獲得焦點的緣故,只要讓EditText失去焦點就行了,解決辦法如下: 1.在Manifest.xml檔案中相應的Activi

開啟新介面時,EditText焦點動彈鍵盤

對於一點點空閒時間,看看文章,竟然想起以前的一個問題,趕緊修改起來。 Android新啟動Activity時,dialog或者其他窗體中包含EditText,新啟動的activity的焦點預設在EditText上,這時候安卓系統會自動彈出軟鍵盤。這會導致擠壓activity介

Android 讓EditText失去焦點避免動彈輸入法

如果一進去activity,EditText就獲取焦點,彈出輸入法介面,無疑是很影響美觀的。關於讓EditText失去焦點,網上比較多的做法是新增一個visibility=gone的Textview.然後讓這個textView獲取焦點。不知道是我人品不好還是怎麼的。我這樣做

Dialog中EditText獲取焦點,並且動彈鍵盤

logs dial tde tco ati delay method post text //解決dilaog中EditText無法彈出輸入的問題 dialog.getWindow().clearFlags(WindowManager.Lay

WPF 禁用TextBox的觸摸後動彈虛擬鍵盤

重寫 前言 () nbsp RKE inf tap text ive 原文:WPF 禁用TextBox的觸摸後自動彈出虛擬鍵盤前言 & 問題 如下截圖,TextBox,在觸摸點擊後,會自動彈出windows的虛擬鍵盤。 如何,禁用鍵盤的自動彈出? 調用虛擬

EditText動彈鍵盤的原因及解決方法

部分內容來源於http://blog.csdn.net/cshichao/article/details/8536961   一.產生原因 EditText自動獲取到了焦點,所以彈出軟鍵盤,so...解決問題的方法也就是不讓他獲取到焦點就行。 二.解決方法 (1)在父

Android 輸入法鍵盤和activity頁面遮擋和動彈問題解決

本文主要介紹Android中如何解決輸入法鍵盤和activity頁面遮擋的問題。 總結: 不希望遮擋設定activity屬性android:windowSoftInputMode="adjustPan" 希望動態調整高度android:windowSoftInputMod

EditText無法輸入內容,無法獲得焦點,無法動彈鍵盤

我碰到這個問題剛開始是抓狂的,最後知道真相的我已經瘋了。 我出現這個問題的原因是,我的小夥伴在佈局中添加了一句程式碼: android:descendantFocusability="block

Android Edittext 關掉鍵盤動彈

  在開發中,遇見了在這樣的需求,開啟一個頁面有一個EditText,進入都還沒載入利索就自動打開了軟鍵盤,不能夠第一眼看到整個頁面的設計,感覺很不友好,需要將軟鍵盤的自動開啟關掉。      法1.網上有個教程是讓EditText失去焦點,程式碼如下,反正

android editText動彈鍵盤(輸入鍵盤

有一個介面有如下的需求:有一個textview上面顯示的是400,我點選之後,彈出對話方塊,對話方塊中有一個輸入框,將400傳遞過來也是顯示400,當點選了textview,預設全選400,此時也同時有輸入法彈出來,這樣就是全選,讓使用者可以使用輸入法中的刪除鍵,一下子刪除

設定進入存在EditText的介面時,輸入法不會動彈

一般情況下,在進入有EditText的介面時,EditText會首先獲得焦點,然後輸入法會自動跳出 解決方法一: 在AndroidManifest檔案中給EditText所在的Activity新增這樣一條屬性 android:windowSoftInputMode="st

vue js IOS H5focus無法動彈鍵盤的解決方法

IOS不自動彈出鍵盤,必須手動觸發一下focus才行,不能自動呼叫,所以需要誘導使用者點選某個按鈕觸發focus,最終修改的方法,預設隱藏密碼輸入框,隱藏不能用v-if或者是v-show,用position:absolute, top:-1000,然後點選輸入密碼將top改為

kotlin 在安卓開發時 鍵盤動彈的嘗試

      最近一直在用kotlin做一些簡單的Android應用開發,遇到很多問題,很多解決方案都是基於java的,我就記錄一些自己在用kotlin的解決方案。      在java關於edittext自動彈出鍵盤的程式碼如下: InputMethodManager i

微信進入訊息頁面,游標處動彈鍵盤設定

<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignP

Android動彈鍵盤

new Thread(new Runnable() { public void run() { InputMethodManager imm

input自動獲取焦點在移動端動彈手機鍵盤

一、input自動獲取焦點     正常來說,在input標籤新增autofocus屬性就可以了。程式碼如下: <input id="search" type="search" placeholder="搜尋" autofocus="autofocus

一行程式碼解決EditText動彈

在AndroidMainfest.xml中,找到需要EditText所在的Activity,增加一條 android:windowSoftInputMode="stateHidden" ,即可禁止Ed

div今天之內不再動彈(cookie)

round led 存在 expires htm spa edt ready back 利用cookie,讓div今天之內不再自動彈出(類似關閉廣告功能),適用於首頁加載彈框提示。 代碼如下: <!DOCTYPE html> <html lang

Skype for business 界面動彈打開

skype同事使用是老版本的Skype(Lync)2013 ,因為授權到期,都轉向2016版的了,所以要升級。在官網,下載了安裝包,安裝時候沒有任何問題,但是在使用2016版的時候 ,最小化2016版後,幾秒後又自動彈出,關閉後又自動彈出,如此反復。反復查看配置沒有發現問題,在檢查系統時候突然發現老版本201

除錯Java專案時,老是動彈ThreadpoolExecutor

最近除錯模式啟動專案,時不時就自動彈出ThreadpoolExecutor,真心的很煩 解決辦法:(去掉Suspend execution on uncaught exceptions選項) 最近除