Android開發中,如何監聽鍵盤彈出收回事件?

時間 2021-05-07 23:50:02

1樓:雷克薩

我最近要做乙個頂起中間布局。試了好多次無法實現,最後想監聽輸入法改變中間margintop為負數。但又要固定,固定則不會監聽到。

後面找到乙個方法外層用linearlayout。頭部用

<View

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"/>

抵消。下面用<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"> 裝你想用的布局即可

2樓:SunXL

參考自:EditText獲取和失去焦點,軟鍵盤的關閉,和軟鍵盤的顯示和隱藏的監聽 - 丶牛皮丶 - 部落格園

親測可用的, 原理和月恆的差不多

//監聽軟鍵盤是否顯示或隱藏

mReplayRelativeLayout.getViewTreeObserver().addOnGlobalLayoutListenernew ViewTreeObserver.

OnGlobalLayoutListenerOverridepublic void onGlobalLayoutRect r = new RectmReplayRelativeLayout.getWindowVisibleDisplayFrame(rint screenHeight = mReplayRelativeLayout.getRootViewgetHeightint heightDifference = screenHeight - (r.

bottomif (heightDifference > 200軟鍵盤顯示

// changeKeyboardHeight(heightDifferenceelse軟鍵盤隱藏

3樓:

看了這個問題下的所有回答,我按照個人的理解稍微做一點總結.

監聽鍵盤彈出通過監聽rootView的高度變化.

監聽鍵盤收起可以通過有一位層主提到的重寫 Edittext.onKeyPreime() 方法.

不過也不完美.

如果想單純的監聽軟鍵盤的彈出和收回感覺很難實現,一般都需要結合業務需求通過介面變化來感知.

4樓:

想要監聽鍵盤向下的事件,需要重寫 Edittext.onKeyPreime() 方法,在這個方法裡進行監聽了.

我的部落格有篇文章專門講這個問題, 對Android 軟鍵盤向下的監聽

5樓:Vander

我現在一直被這類問題困擾:

如果單純的監聽軟鍵盤的彈出,樓上的方案,幾乎沒問題,包括軟鍵盤的彈出和關閉監聽的效果在介面不複雜的情況下,效能上面也不會太麻煩.

就是在比較低端一點的機型,onGlobalLayout這個方法就吃力太多,每次彈出軟鍵盤真的太卡了.這幾天一直在研究怎麼優化.頭疼死了.

------- 後來我發現---造成卡頓是由於介面重繪導致的.------

監聽軟鍵盤收回,onGlobaLayout這種方式應該是比較不錯的,可能還會有更合適的方法.

你在學習Android開發中走了哪些彎路?

伍六七 我大四開始自學Android,從一開始實習都很難找,到三年後成長為Android技術負責人,簡單說說我在自學路上的一些經驗吧 基礎不牢固 自學過程中往往是衝著工作中的實際問題去的,其實後面會發現,工作中出現的很多問題背後的原理,就在那些基礎知識中,Android四大元件 View的繪製 事件...

如何推廣自己開發的 Android 應用?Android 應用該做哪些推廣?

答非所問來一發 不說如何推廣,外邊的BD太多了,隨便招乙個就夠用 看題主的意思應該是未來CEO的意思,要合理分配自己的精力 下邊是推廣新產品節奏 第一階段 測試 如果感覺產品ok的話,給自己產品定好指標,花錢去三方市場買點量回來看看,測試完會有乙個產品迭代和投入產出比計算 第二階段 花錢 上面的階段...

零基礎如何自學 Android 開發?

神秘人 首先請看圖。其次如果你是新手你手頭有創業專案 就卡在技術這一關。我可以幫你的。免費。喜歡交朋友。我發這個圖不是說安卓比 IOS 差只是想說零基礎的最好 最好最好最好。重要的事情說三遍。最好從IOS學起。助攻IOS 輔安卓。不要問我為什麼 沒有為什麼。 Alex Wang 最重要的是,一定要看...