導航:首頁 > 操作系統 > 安卓連接鍵盤如何不彈出輸入框

安卓連接鍵盤如何不彈出輸入框

發布時間:2023-06-11 14:38:01

Ⅰ 安卓手機搜狗輸入法怎麼關閉桌面懸浮鍵盤

1、點擊進入搜狗輸入法APP。

android 軟鍵盤的彈出及關閉

一、彈出:
方法1(推薦,此種方式可以自動彈出,無需延遲):

方法2(此種方式需要延遲一段時間,等UI載入完畢之後方能生效。但這個載入時間因不同手機而無法統一。你的手機好點,可能100毫秒就載入完畢,我的手機差點,可能需要1000毫秒才能載入完成。因此無法保證一定能自動彈出軟鍵盤):

方法3(推薦。原理同上,只是不需要自己寫死延遲時間。因為不同手機UI載入完畢所需時間可能不一樣,這種方法比較保險,總是在UI載入完畢之後彈出,靈活性較好。而方法2延遲時間是寫死的700毫秒,有可能在一些性能比較差的手機,700毫秒內UI還無法載入完畢,因此無法自動彈出軟鍵盤。也有可能因為手機性能太好,100毫秒就載入完UI,而後面的600毫秒就算白等了,靈活性、可靠性及用戶體驗都很差):

二、關閉(如果是在Dialog中彈出的,則一定要在Dialog關閉前關閉軟鍵盤;如果是在Activity中彈出的,則一定要在finish之前關閉軟鍵盤):
方法1:

方法2(推薦):

Ⅲ android4.4 framework層怎樣阻止彈出軟鍵盤(輸入法)

我建議你先下載一個任意的第三方輸入法 然後按照步驟安裝 屏蔽原機自帶輸入法 然後刪除第三方輸入法 這時候 你再打開要輸入的一個界面 游標點擊空白處 你會發現沒有任何軟鍵盤彈出 希望對你有幫助

Ⅳ 如何禁止android軟鍵盤自動彈出

用的是android自帶的輸入框組件的話,是會自動彈出軟鍵盤的. 如果是其他的地方需要彈出軟鍵盤可以先在想要彈出的地方先獲取組件焦點,然後調用鍵盤就ok了.

Ⅳ Android4.0 EidtText不彈出輸入法

看一個manifest中Activity的配置,如果這個頁面有EditText,並且我們想要進入這個頁面的時候默認彈出輸入法,可以這樣設置 這個屬相:android:windowSoftInputMode=stateVisible,這樣就會默認彈起輸入法,當然還有別的辦法。


java"><activityandroid:name=".ui.login"
android:configChanges="orientation|keyboardHidden|locale"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateVisible|adjustPan">
</activity>

Android EditText 不彈出輸入法總結

方法一:

在AndroidMainfest.xml中選擇哪個activity,設置windowSoftInputMode屬性為 adjustUnspecified|stateHidden

例如:

<activityandroid:name=".Main"
android:label="@string/app_name"
android:windowSoftInputMode="adjustUnspecified|stateHidden"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

方法二:

讓EditText失去焦點,使用EditText的clearFocus方法

例如:

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

方法三:

強制隱藏Android輸入法窗口

例如:

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

2.EditText始終不彈出軟體鍵盤

例:

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

研究了下android中焦點Focus和彈出輸入法的問題。在網上看了些例子都不夠全面,在這里全面總結下。

一:EditText為什麼會默認彈出輸入法?

同樣的代碼,碰到有EditText控制項的界面時有的機子會彈出輸入法,有的機子不會彈出。不好意思,這問題我也一頭霧水,誰知道可以告訴我,否則 我就把這個問題留下來,以後研究android 源碼時再搞個清楚。但是...我有解決方案。

二:默認彈出和默認關閉輸入法的解決方案。

1.默認關閉,不至於進入Activity就打開輸入法,影響界面美觀。

①在布局文件中,在EditText前面放置一個看不到的LinearLayout,讓他率先獲取焦點:

<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"/>

②方法二:先看一個屬性android:inputType:指定輸入法的類型,int類型,可以用|選擇多個。取值可以參 考:android.text.InputType類。取值包括:text,textUri,

phone,number,等.

Android SDK中有這么一句話「If the given content type is TYPE_NULL then a soft keyboard will not be displayed for this text view」,

先將EditText的InputType改變為TYPE_NULL,輸入法就不會彈出.然後再設置監聽,再重新設置它的InputType.


editText.setOnTouchListener(newOnTouchListener(){
publicbooleanonTouch(Viewv,MotionEventevent){
//TODOAuto-generatedmethodstub
intinType=editText.getInputType();//backuptheinputtype
editText.setInputType(InputType.TYPE_NULL);//disablesoftinput
editText.onTouchEvent(event);//callnativehandler
editText.setInputType(inType);//restoreinputtype
returntrue;
}
});

2.默認彈出。有時候按照需求可能要求默認彈出輸入法。方案如下:


EditTexttitleInput=(EditText)findViewById(R.id.create_edit_title);
titleInput.setFocusable(true);
titleInput.requestFocus();
onFocusChange(titleInput.isFocused());
privatevoidonFocusChange(booleanhasFocus)
{
finalbooleanisFocus=hasFocus;
(newHandler()).postDelayed(newRunnable(){
publicvoidrun(){
InputMethodManagerimm=(InputMethodManager)
titleInput.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if(isFocus)
{
imm.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);
}
else
{
imm.hideSoftInputFromWindow(titleInput.getWindowToken(),0);
}
}
},100);
}

我覺得因為在Android的主線程中對UI的操作無效,所以必須在Handler中實現彈出輸入法的操作。

三:關於焦點和輸入法的個人理解

獲取焦點是獲取焦點,彈輸入法是彈輸入法。獲取焦點後並不一定會彈出輸入法,在網上搜了一圈,主流回答是「還有就是已開啟界面就是focus的 text的話有可能也是不行的,UI渲染是需要時間的」......

由於對源碼不懂,我對這一點也沒有個全面的認識。只能將焦點和輸入法分成兩塊來處理。焦點的打開和關閉特別簡單。

焦點的獲取:

titleInput.setFocusable(true);
titleInput.requestFocus();

焦點的取消:

titleInput.setFocusable(false);

四:關於經常調用的處理軟鍵盤的函數如下:

1、打開輸入法窗口:

=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

//接受軟鍵盤輸入的編輯文本或其它視圖

imm.showSoftInput(submitBt,InputMethodManager.SHOW_FORCED);

2、關閉出入法窗口


=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(OpeListActivity.this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);

//接受軟鍵盤輸入的編輯文本或其它視圖

inputMethodManagerwww.2cto.com
.showSoftInput(submitBt,InputMethodManager.SHOW_FORCED);

3、如果輸入法打開則關閉,如果沒打開則打開

InputMethodManagerm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
m.toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);

4、獲取輸入法打開的狀態

InputMethodManagerimm=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
booleanisOpen=imm.isActive();

isOpen若返回true,則表示輸入法打開

閱讀全文

與安卓連接鍵盤如何不彈出輸入框相關的資料

熱點內容
項目開發全程實錄pdf 瀏覽:530
單片機reset 瀏覽:595
pdf怎麼是英文 瀏覽:969
旗雲2壓縮機保險 瀏覽:374
做程序員壓力大嗎表情包 瀏覽:312
pdf下拉 瀏覽:371
php去掉小數後面的0 瀏覽:954
阿里備案買什麼伺服器 瀏覽:261
網路驅動下載到哪個文件夾 瀏覽:481
達內程序員培訓西安 瀏覽:505
人保送車主惠app上怎麼年檢 瀏覽:604
android手機開機密碼 瀏覽:480
linux查看某個進程命令 瀏覽:529
閑置的騰訊雲伺服器 瀏覽:437
rar壓縮包mac 瀏覽:627
php混淆加密工具 瀏覽:581
java把數字拆分 瀏覽:464
如何下載svn伺服器舊版本 瀏覽:559
命令與征服4攻略 瀏覽:914
實數四則運演算法則概念 瀏覽:296