當前位置:首頁 » 安卓系統 » imeoptionsandroid

imeoptionsandroid

發布時間: 2023-09-02 09:42:06

Ⅰ 怎麼讓手機網頁輸入框獲得焦點時彈出的軟鍵盤帶搜索鍵 (安卓或者IOS鍵盤右下角有前往或者搜索字樣)

不知道你是不是做開發的,這是跟這個輸入框的屬性有關的。我做android開發的,ios不太清楚。

這類輸入框是控制項EditText,,只需在EditText加一個屬性android:imeOptions="actionSearch",這是輸入框獲取焦點彈出軟體盤時,就會有搜索,相應的還有android:imeOptions="actionSend"(發送) android:imeOptions="actionNext"(下一項),android:imeOptions="actionDone"(完成),android:imeOptions="actionGo"(前往)等等,也就是說用戶本身是不能決定的。如圖




Ⅱ android 軟鍵盤回車鍵沒有

在Layout文件中,對EditText的設置如下:
加上屬性:
android:imeOptions=""
這個屬性的可輸入的值如圖所示;
舉幾個例子分別代表的含義:
actionSearch: 搜索
actionSend: 發送
actionNext: 下一項
同樣,也可在activity代碼中設置imeOptions:
editText.setImeOptions(EditorInfo.IME_ACTION_SEND);

然後,在activity代碼中添加,imeOptions的監聽。
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId==EditorInfo.IME_ACTION_SEND ||(event!=null&&event.getKeyCode()== KeyEvent.KEYCODE_ENTER))
{

//do something;

return true;

}

return false;

}

});

Ⅲ 關於Android中的軟鍵盤

原文鏈接:徹底搞定Android開發中軟鍵盤的常見問題
軟體盤的本質是什麼?軟鍵盤其實是一個Dialog。

InputMethodService為我們的輸入法創建了一個Dialog,並且將該Dialog的Window的某些參數(如Gravity)進行了設置,使之能夠在底部或者全屏顯示。當我們點擊輸入框時,系統對活動主窗口進行調整,從而為輸入法騰出相應的空間,然後將該Dialog顯示在底部,或者全屏顯示。
軟鍵盤顯示的調整
Android 定義了一個屬性,名字為windowSoftInputMode, 這個屬性用於設置Activity主窗口與軟鍵盤的交互模式,用於避免軟鍵盤遮擋內容的問題。我們可以在AndroidManifet.xml中對Activity進行設置。如:android:windowSoftInputMode=」stateUnchanged|adjustPan」。 該屬性可選的值有兩部分,一部分為軟鍵盤的狀態控制,控制軟鍵盤是隱藏還是顯示,另一部分是Activity窗口的調整,以便騰出空間展示軟鍵盤。 android:windowSoftInputMode的屬性設置必須是下面中的一個值,或一個」state」值加一個」adjust」值的組合,各個值之間用 | 分開。
stateUnspecified-未指定狀態 :當我們沒有設置android:windowSoftInputMode屬性的時候,軟體默認採用的就是這種交互方式,系統會根據界面採取相應的軟鍵盤的顯示模式。
stateUnchanged-不改變狀態 :當前界面的軟鍵盤狀態,取決於上一個界面的軟鍵盤狀態,無論是隱藏還是顯示。
stateHidden-隱藏狀態 :當設置該狀態時,軟鍵盤總是被隱藏,不管是否有輸入的需求。
stateAlwaysHidden-總是隱藏狀態 :當設置該狀態時,軟鍵盤總是被隱藏,和stateHidden不同的是,當我們跳轉到下個界面,如果下個頁面的軟鍵盤是顯示的,而我們再次回來的時候,軟鍵盤就會隱藏起來。
stateVisible-可見狀態 :當設置為這個狀態時,軟鍵盤總是可見的,即使在界面上沒有輸入框的情況下也可以強制彈出來出來。
stateAlwaysVisible-總是顯示狀態 :當設置為這個狀態時,軟鍵盤總是可見的,和stateVisible不同的是,當我們跳轉到下個界面,如果下個頁面軟鍵盤是隱藏的,而我們再次回來的時候,軟鍵盤就會顯示出來。
adjustUnspecified-未指定模式 :設置軟鍵盤與軟體的顯示內容之間的顯示關系。當你跟我們沒有設置這個值的時候,這個選項也是默認的設置模式。在這中情況下,系統會根據界面選擇不同的模式。
adjustResize-調整模式 :該模式下窗口總是調整屏幕的大小用以保證軟鍵盤的顯示空間;這個選項不能和adjustPan同時使用,如果這兩個屬性都沒有被設置, 系統會根據窗口中的布局自動選擇其中一個
adjustPan-默認模式 :該模式下通過不會調整來保證軟鍵盤的空間,而是採取了另外一種策略,系統會通過布局的移動,來保證用戶要進行輸入的輸入框肯定在用戶的視野范圍裡面,從而讓用戶可以看到自己輸入的內容。

案例
沒有滾動布局xml

對於沒有滾動控制項的布局來說,adjustPan就是默認的設置,比如我們案例應用中的文本輸入8,上面的文本輸入框123和按鈕都會被頂上去,且頁面布局不可以滾動。

對於沒有滾動控制項的布局來說,整個布局會網上偏移(包括標題等)以保證輸入框的可見。如果有滾動控制項,那麼就是內容網上偏移,標題不會動,還可以通關滾動來查看被頂上去的內容,而這點是不可滾動的布局所不具備的

有滾動布局xml

對於有滾動控制項的布局,則是採用的adjustResize方式,比如我們案例應用中的文本輸入8,上面的文本輸入框123和按鈕都會被頂上去, 可以通過滾動來查看被頂上去的內容。

** 根據這一原理,我們就可以把開發中遇到的軟鍵盤遮擋頁面的問題,利用ScrollView當做根布局,讓系統採用adjustResize模式,很好地解決這一問題。**

自動彈出軟鍵盤
有時候需要一進入Activity後就自動彈出軟鍵盤,可以通過設置一個時間函數來實現,具體寫法如下:
方法一:

方法二:

有時進入Activity後不希望系統自動彈出軟鍵盤,我們可以按照下面的方法來實現:
方法一:
在AndroidMainfest.xml中選擇那個activity,設置windowSoftInputMode屬性為adjustUnspecified|stateHidden

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

方法三:
強制隱藏Android輸入法窗口

方法四:
EditText始終不彈出軟體鍵盤

EditText設置ScrollView壓縮背景圖片解決辦法
在你的Activity里加上

有時希望根據條件動態關閉軟鍵盤,我們可以使用InputMethodManager類,按照下面的方法來實現:
方法一:

方法二:
強制隱藏軟鍵盤,這個方法倒是很實用。

方法三:

方法四:

在onclick事件下.以下方法可行.(如果是EditText失去焦點/得到焦點,沒有效果)

InputMethodManager的具體用法可以參考下面的鏈接: http://www.apihome.cn/api/android/InputMethodManager.html

使用android:imeOptinos可對Android自帶的軟鍵盤進行一些界面上的設置:

android:imeOptions="flagNoExtractUi" //使軟鍵盤不全屏顯示,只佔用一部分屏幕

同時,這個屬性還能控制項軟鍵盤右下角按鍵的顯示內容,默認情況下為回車鍵
android:imeOptions="actionNone" //輸入框右側不帶任何提示 android:imeOptions="actionGo" //右下角按鍵內容為'開始' android:imeOptions="actionSearch" //右下角按鍵為放大鏡圖片,搜索 android:imeOptions="actionSend" //右下角按鍵內容為'發送' android:imeOptions="actionNext" //右下角按鍵內容為'下一步' android:imeOptions="actionDone" //右下角按鍵內容為'完成'

同時,可能EditText添加相應的監聽器,捕捉用戶點擊了軟鍵盤右下角按鈕的監聽事件,以便進行處理。

開發中有個需求是將頁面底部的一個按鈕頂起,但是開發時發現Android5.0以後的版本設置了adjustResize屬性後無法成功頂起。糾結了好久,最後在stackoverflow找到解決方案,那就是在根布局上加上fitsSystemWindow=」true」即可。

這里的fitsSystemWindow具體的作用就是你的**contentview是否忽略actionbar,title,屏幕的底部虛擬按鍵,將整個屏幕當作可用的空間。 **
正常情況,contentview可用的空間是去除了actionbar,title,底部按鍵的空間後剩餘的可用區域;這個屬性設置為true,則忽略,false則不忽略

在edittext上加入Android:imeOptions=」actionSearch」這個屬性沒響應,最後發現在2.3及以上版本不起作用,解決方案:加上

因為輸入法鍵盤右下角默認的回車鍵本來就是換行用的,當設置單行後,回車換行就失去作用了,這樣就可以設置為搜索、發送、go等等。

Ⅳ 安卓想不通怎麼用setImeActionLabel-java,安卓android,edittext

The imeActionLabel sets the label for the button that appears on the top right on full screen IME mode (i.e., when your phone is in landscape). If you want to change the button to the bottom right of the keyboard, you can pass certain flags to imeOptions.
As far as I know, for that button you're limited to a certain set of actions (see here for a full list of supported flags), but since you seem to want a search button, all you have to do is to slightly adjust your first line and use IME_ACTION_SEARCH:
mSearchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

Mind you, the exact appearance of that button will depend on the input method. The default Android keyboard shows a magnifier for the search flag, while the Touch Input (HTC's keyboard) seems completely unaware of that flag, still showing a return button.
的imeActionLabel設置標簽的按鈕,出現在右上角全屏輸入法模式(即。當你的手機在景觀)。如果你想改變這個按鈕右下角的鍵盤,你可以通過特定的旗幟imeOptions .
據我所知,這個按鈕你限制在一個特��的行動(見在這里完全支持的標記列表),但既然你似乎想要一個搜索按鈕,你所要做的就是稍微調整你的第一行和使用IME_ACTION_SEARCH :
mSearchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

請注意,這個按鈕的具體外觀將取決於輸入方法。搜索的默認安卓鍵盤顯示了一個放大鏡標志,而觸摸輸入(HTC的鍵盤)似乎完全不知道國旗,仍然顯示一個返回按鈕。

Ⅳ 【轉】Android軟鍵盤的全面解析

軟鍵盤其實是一個Dialog

InputMethodService為我們的輸入法創建了一個Dialog,並且對某些參數進行了設置,使之能夠在底部或者全屏顯示。當我們點擊輸入框時,系統會對當前的主窗口進行調整,以便留出相應的空間來顯示該Dialog在底部,或者全屏。

其實這段話我們經常在各種軟鍵盤博客所看到,但是大家並不知道Android是怎麼為我們創建的這個Dialog,所以我先帶大家來看下軟鍵盤生成這塊的源碼,了解軟鍵盤的生成流程。

我們先來看一下InputMethodService的繼承關系:

因為InputMethodService屬於服務,接下來我們先看一下服務的入口onCreate()方法:

通過上面的分析,我們懷疑這里的SoftInputWindow是軟鍵盤彈出創建的Dialog對象,下面我們看下SoftInputWindow的源碼。

看到這里大家就能明白了,為什麼說軟鍵盤就是一個Dialog。而且這里通過設置Gravity.BOTTOM來控制當前Dialog在Window中的位置。

在Android中,可以通過給Activity設置 windowSoftInputMode 這個屬性來控制軟鍵盤與Activity的主窗口的交互方式。

Activity 的主窗口與包含屏幕軟鍵盤的窗口的交互方式,該屬性的設置影響兩個方面:

該設置必須是下面所列的值之一,或者是一個「state…」值加上一個「adjust…」值的組合,在任一組中設置多個值(例如,多個「state…」值)都會產生未定義結果。各值之間使用垂直條 (|) 分隔。

下面將通過例子來介紹 adjustNoting adjustUnspecified adjustResize adjustPan 在軟鍵盤彈出的區別:

非滾動布局xml

點擊最下面的EditText12

滾動布局xml

通過上面的例子,我們可以完全理解adjust系列的各個參數的作用。而軟鍵盤的顯示和隱藏這裡面需要並不多,而且內容並不算復雜,大家回去自己嘗試下就可以。

在日常開發中,如果需要將軟鍵盤的Enter鍵更改為其他鍵,可以設置其 android:imeOptions 屬性,這個屬性可以控制軟鍵盤的Enter鍵,以及橫屏情況下的軟鍵盤顯示狀態。

該設置必須是下面所列的值之一,或者是一個「action…」值加上一個「flag…」值的組合,在action…組中設置多個值(例如,多個「action…」值)都會產生未定義結果,而flag….可以設置多個。各值之間使用垂直條 (|) 分隔

控制軟鍵盤上的Enter鍵

橫屏下控制軟鍵盤

總結一下:
這里大部分的屬性,已經介紹完畢,如果英語好的同學,可以去看下官方文檔,可以更好的理解,並且本文以搜狗輸入法為實踐,可能其他的輸入法與其顯示的不同,但是功能應該都是一樣的。

而如果要在橫屏狀態不希望軟鍵盤全屏顯示最好是將flagNoFullscreen和flagNoExtractUi結合使用,這樣體驗上會更好

android:imeOptions=」flagNoFullscreen|flagNoExtractUi」

Android官網的Api

如果需要監聽軟鍵盤的右下角的按鍵,需要為EditText設置setOnEditorActionListener()監聽:

上面的方式,只是展示了如何監聽各個按鍵的方法,如果需要消費事件,則需要return true。

(1)第一次寫這么長的博客,感覺會有一些不足,各位看官如果有不合理的地方,或者有誤的地方請直接指出。

(2)本來想整理成一個Demo的,後來簡單看來下,該有的幾乎都貼出來了,有需要的可以按需復制就可以。

(3)寫完這篇博客之後,感覺博客干貨還是不多,所以定位這篇文章算是總結性質加上實際案例性質的博客。

(4)Android軟鍵盤的總結就差不多到這里,希望各位看官,如果看到這里有收獲,就點點贊,灌灌水,頂一波,這樣博主才有寫下去的動力。

(5)感謝小輝同學的校驗,調整了文章中不通順的地方。

1.徹底搞定Android開發中軟鍵盤的常見問題
http://blog.csdn.net/mynameishuangshuai/article/details/51567357

2.Android UI(EditText)詳解
http://blog.csdn.net/qq_28057577/article/details/51919965?locationNum=12&fps=1

3.微信軟鍵盤布局閃動問題
https://blog.dreamtobe.cn/2015/09/01/keyboard-panel-switch/

熱點內容
安卓模擬器怎麼用鍵盤操作 發布:2025-02-01 21:55:24 瀏覽:807
安卓手機屏幕為什麼會變色 發布:2025-02-01 21:55:20 瀏覽:819
安卓存摺怎麼看余額 發布:2025-02-01 21:53:34 瀏覽:769
其他電腦怎麼設置訪問伺服器 發布:2025-02-01 21:34:27 瀏覽:895
如何敲編程 發布:2025-02-01 21:26:13 瀏覽:24
微信加密嗎 發布:2025-02-01 21:26:07 瀏覽:42
c語言中的預處理命令 發布:2025-02-01 21:26:07 瀏覽:539
怎麼確認機動車解壓 發布:2025-02-01 20:58:07 瀏覽:47
怎樣配置ntp伺服器地址和埠號 發布:2025-02-01 20:57:53 瀏覽:465
java培訓哪家就業好 發布:2025-02-01 20:53:27 瀏覽:426