Android監(jiān)聽軟鍵盤彈出與隱藏的兩種方法-創(chuàng)新互聯(lián)

需求:

成都創(chuàng)新互聯(lián)公司為客戶提供專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項目涵蓋了網(wǎng)頁設(shè)計、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、成都手機(jī)網(wǎng)站制作等網(wǎng)站方面業(yè)務(wù)。

現(xiàn)在有一個需求是點擊一行文本框,彈出一個之前隱藏的輸入框,輸入完成后按返回鍵或者其他的東西隱藏鍵盤和輸入框,將輸入框的內(nèi)容填充到文本框中。

實現(xiàn):

拿到這個需求的第一反應(yīng)就是寫一個監(jiān)聽來監(jiān)聽鍵盤的顯示和隱藏來控制輸入框的顯示和隱藏,控制文本框中的內(nèi)容。
所以我做了如下操作:

  1. 指定android:windowSoftInputMode="adjustResize|stateAlwaysHidden"這個的做法是為了讓鍵盤彈出時改變布局。
  2. 讓Activity實現(xiàn)LayoutchangeListener,監(jiān)聽布局的改變,當(dāng)布局發(fā)生的改變?yōu)槠聊坏?/3時我們認(rèn)為是鍵盤導(dǎo)致的。
@Override 
 public void onLayoutChange(View v, int left, int top, int right, 
     int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { 

   //old是改變前的左上右下坐標(biāo)點值,沒有old的是改變后的左上右下坐標(biāo)點值 

   //現(xiàn)在認(rèn)為只要控件將Activity向上推的高度超過了1/3屏幕高,就認(rèn)為軟鍵盤彈起 
   if(oldBottom != 0 && bottom != 0 &&(oldBottom - bottom > keyHeight)){ 

     Toast.makeText(MainActivity.this, "監(jiān)聽到軟鍵盤彈起...", Toast.LENGTH_SHORT).show(); 

   }else if(oldBottom != 0 && bottom != 0 &&(bottom - oldBottom > keyHeight)){ 

     Toast.makeText(MainActivity.this, "監(jiān)聽到軟件盤關(guān)閉...", Toast.LENGTH_SHORT).show(); 

   } 

 }

當(dāng)前標(biāo)題:Android監(jiān)聽軟鍵盤彈出與隱藏的兩種方法-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://www.muchs.cn/article18/djjpdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站內(nèi)鏈、靜態(tài)網(wǎng)站網(wǎng)站設(shè)計公司、營銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司