當前位置:編程學習大全網 - 源碼下載 - [轉折]安卓軟鍵盤綜合分析

[轉折]安卓軟鍵盤綜合分析

軟鍵盤實際上是壹個對話框。

InputMethodService為我們的輸入法創建壹個對話框,並設置壹些參數,以便它可以顯示在底部或全屏。當我們點擊輸入框時,系統會調整當前的主窗口,留出相應的空間在底部或全屏顯示對話框。

其實我們經常在各種軟鍵盤博客中看到這段話,但是我們不知道Android是如何為我們創建這個對話框的,所以我先帶大家看看軟鍵盤生成的源代碼,了解壹下軟鍵盤的生成過程。

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

因為InputMethodService屬於服務,所以我們先來看看服務入口onCreate()方法:

通過上面的分析,我們懷疑這裏的SoftInputWindow是壹個軟鍵盤彈出創建的對話框對象。我們來看看SoftInputWindow的源代碼。

看到這裏,大家就能明白為什麽軟鍵盤是對話框了。此外,當前對話框在窗口中的位置是通過設置Gravity.BOTTOM來控制的

在Android中,可以通過為活動設置屬性Windows軟件輸入模式來控制軟鍵盤與活動主窗口的交互。

活動主窗口和包含屏幕軟鍵盤的窗口之間的交互模式。該屬性的設置影響兩個方面:

該設置必須是下列值之壹,或者是“狀態…”值和“調整…”值的組合。在任何組中設置多個值(例如,多個“state…”值)將產生未定義的結果。值由豎線(|)分隔。

下面將通過實例介紹軟鍵盤彈出中adjustNoting、adjustUnspecified、adjustResize和adjustPan的區別:

非滾動布局xml

單擊底部的編輯文本12。

滾動布局xml

通過上面的例子,我們可以充分了解adjust系列各個參數的作用。軟鍵盤的顯示和隱藏不需要太多,內容也不復雜,可以回去自己試試。

在日常開發中,如果需要將軟鍵盤的回車鍵改為另壹個鍵,可以設置其android:imeOptions屬性,該屬性可以控制軟鍵盤的回車鍵以及軟鍵盤在橫屏中的顯示狀態。

該設置必須是下列值之壹,或者是“動作…”值和“標誌…”值的組合。在action…組中設置多個值(例如,多個“action…”值)將導致未定義的結果,而flag…可以設置多個值。值由豎線(|)分隔

控制軟鍵盤上的回車鍵

橫屏控制軟鍵盤

總而言之:

這裏的大部分屬性都已經介紹過了。如果英語好的學生能閱讀官方文件,他們就能更好地理解它們。此外,本文還以搜狗輸入法為例進行了實踐。可能其他輸入法和展示的不壹樣,但是功能應該是壹樣的。

但如果不想軟鍵盤在橫屏模式下全屏顯示,最好是flagNoFullscreen和flagNoExtractUi結合使用,這樣體驗會更好。

Android:ime options = " flagno full screen | flagno extract ui "

安卓官網的Api

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

上面的方法只顯示了如何監控每個鍵。如果需要消費事件,需要返回true。

(1)第壹次寫這麽長的博客,感覺會有些不足。如有不合理的地方或錯誤,請直接指出。

(2)本來想整理成Demo。後來簡單來說,幾乎都貼了,妳可以根據需要復制。

(3)寫完這篇博客,感覺博客裏的幹貨還是不多,所以定位這篇文章是壹篇總結和實際案例博客。

(4)4)安卓軟鍵盤的總結差不多到了。希望妳能看懂官方。看到這裏有什麽,就點個贊,灌點水,做個浪,博主才會有寫的動力。

(5)感謝小輝的驗證,並對文章中不通順的地方進行了調整。

1.徹底解決Android開發中軟鍵盤的常見問題。

/2015/09/01/鍵盤-面板-開關/

  • 上一篇:Zhuimandaquan app免費。
  • 下一篇:顧比均線的使用技巧
  • copyright 2024編程學習大全網