自定義布局監聽軟體盤彈出關閉

2021-07-25 19:47:57 字數 1224 閱讀 7754

在我的專案有個監聽軟鍵盤的需求 

我找了好多東西 都沒有合適 都監聽的不怎麼樣  

雖然 沒有找到最好的方法 但是找到乙個取巧的方法

那就是自定義布局監聽布局發生的改變來達到監聽的目的

**如下

public classmyrelativelayoutextendsrelativelayout 

publicmyrelativelayout(context context, attributeset attrs)

publicmyrelativelayout(context context, attributeset attrs,intdefstyleattr)

//主要是這個方法 布局的size發生改變

@override

protected voidonsizechanged(intw,inth,intoldw,intoldh)

}else

}}

//寫個介面 來丟擲顯示和影藏的方法

public voidsetlistener(inputwindowlistener listener)

public inte***ceinputwindowlistener

}

這裡提醒一下  這個如果 你直接就寫乙個editview測試 會發現只會第一次 出發

onsizechanged下面 不觸發了  那是因為布局沒有發生改變
解決方式就是讓軟體盤把布局頂上去 那麼 布局大小必然發生改變
所以在清單檔案 對對應的activity加上這個屬性就okl
android:windowsoftinputmode="statevisible|adjustresize"

希望對你們有所幫助

自定義布局

自定義view布局 1.確定每個view的位置和尺寸 2.作用 為繪製和觸控範圍做支援 1.對於繪製 知道自己需要在 繪製。2.對於觸控反饋 知道使用者的點是在 自定義view布局的工作內容 自定義view的工作分為兩個階段 測量階段和布局階段 測量流程 從上到下遞迴呼叫每個view或者viewgr...

安卓軟體盤的彈出 收回監聽

先寫工具類 import importandroid.graphics.rect importandroid.view.view importandroid.view.viewtreeobserver created by admin on 2018 1 30.public classsoftkey...

自定義彈出框alert

有時候由於某種需求,我們需要改變彈出框的樣式。例子一 js 如下 function alert txt 例子二 可以正常確定返回。js 如下 window.alert function str alertfram.focus document.body.onselectstart function ...