最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android判斷軟鍵盤彈出并隱藏的簡(jiǎn)單完美解決方法(推薦)

 更新時(shí)間:2016年10月22日 09:22:54   投稿:jingxian  
下面小編就為大家?guī)硪黄狝ndroid判斷軟鍵盤彈出并隱藏的簡(jiǎn)單完美解決方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

最近項(xiàng)目中有一個(gè)編輯框,下面是個(gè)ListView。在觸發(fā)編輯框彈出軟鍵盤后,ListView還能滑動(dòng),并且ListView的item還能響應(yīng)單擊。這樣的體驗(yàn)效果很不好。于是便想在滑動(dòng)或單擊item時(shí)判斷鍵盤是否彈出,若彈出,則把它隱藏。

網(wǎng)上一搜,發(fā)現(xiàn)Android并沒有直接提供軟鍵盤的彈出與隱藏判斷,一些解決方案諸如判斷父控件的高度或者判斷

if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)
 隱藏鍵盤;

的方法并沒有用,于是便從官方文檔著手。

發(fā)現(xiàn)InputMethodManager有一個(gè)方法isActive(View view):如果view是輸入法的活動(dòng)view,則返回true。也就是說,如果是由view觸發(fā)彈出軟鍵盤,則返回true。哇,那問題就好辦了

if(isActive(edittext))
隱藏鍵盤

接著讓另一個(gè)view強(qiáng)制獲取焦點(diǎn),這樣isActivite(ediitext)就為false.

這個(gè)方法比較簡(jiǎn)單,代碼比較短,也很好理解,希望能夠幫助有需要的人,也不枉費(fèi)我調(diào)試幾個(gè)小時(shí)的功夫。

附上代碼:

InputMethodManager inputMethodManager = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);<br>private boolean hideKeyboard(){
    if(inputMethodManager.isActive(searchEditText)){<br>          //因?yàn)槭窃趂ragment下,所以用了getView()獲取view,也可以用findViewById()來獲取父控件
      getView().requestFocus();//使其它view獲取焦點(diǎn).這里因?yàn)槭窃趂ragment下,所以便用了getView(),可以指定任意其它view
      inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
      return true;
    }
    return false;
  }

ps:  如果是手動(dòng)彈出鍵盤,getActivity().getCurrentFocus()改成searchEditText.并且手動(dòng)彈出的鍵盤isActivie()失效,可用標(biāo)記來判斷.

以上就是小編為大家?guī)淼腁ndroid判斷軟鍵盤彈出并隱藏的簡(jiǎn)單完美解決方法(推薦)全部?jī)?nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

最新評(píng)論

义马市| 霍林郭勒市| 霍城县| 鄂州市| 东辽县| 公安县| 明光市| 措美县| 鄂托克旗| 舒兰市| 青河县| 马鞍山市| 秦皇岛市| 邹平县| 黔西| 德保县| 镇宁| 铁力市| 百色市| 兴隆县| 遵义市| 班戈县| 融水| 泉州市| 科尔| 慈溪市| 阿尔山市| 耿马| 台南县| 曲沃县| 江西省| 濮阳市| 安化县| 南充市| 金湖县| 东丰县| 台北市| 枣阳市| 托克托县| 克什克腾旗| 正蓝旗|