日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android 点击空白退出,Android 点击空白处隐藏键盘

發(fā)布時(shí)間:2025/3/15 Android 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 点击空白退出,Android 点击空白处隐藏键盘 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

方法一:使用android的分發(fā)機(jī)制(代碼稍微有點(diǎn)多)

/**

*?實(shí)現(xiàn)點(diǎn)擊空白處,軟鍵盤消失事件

*?@param?ev

*?@return

*/

@Override

public?boolean?dispatchTouchEvent(MotionEvent?ev)?{

if?(ev.getAction()?==?MotionEvent.ACTION_DOWN)?{

//?獲得當(dāng)前得到焦點(diǎn)的View,一般情況下就是EditText(特殊情況就是軌跡求或者實(shí)體案件會(huì)移動(dòng)焦點(diǎn))

View?v?=?getCurrentFocus();

if?(isShouldHideInput(v,?ev))?{

hideSoftInput(v.getWindowToken());

}

}

return?super.dispatchTouchEvent(ev);

}

/**

*?根據(jù)EditText所在坐標(biāo)和用戶點(diǎn)擊的坐標(biāo)相對(duì)比,來判斷是否隱藏鍵盤,因?yàn)楫?dāng)用戶點(diǎn)擊EditText時(shí)沒必要隱藏

*

*?@param?v

*?@param?event

*?@return

*/

private?boolean?isShouldHideInput(View?v,?MotionEvent?event)?{

if?(v?!=?null?&&?(v?instanceof?EditText))?{

int[]?l?=?{?0,?0?};

v.getLocationInWindow(l);

int?left?=?l[0],?top?=?l[1],?bottom?=?top?+?v.getHeight(),?right?=?left

+?v.getWidth();

if?(event.getX()?>?left?&&?event.getX()?

&&?event.getY()?>?top?&&?event.getY()?

//?點(diǎn)擊EditText的事件,忽略它。

return?false;

}?else?{

return?true;

}

}

//?如果焦點(diǎn)不是EditText則忽略,這個(gè)發(fā)生在視圖剛繪制完,第一個(gè)焦點(diǎn)不在EditView上,和用戶用軌跡球選擇其他的焦點(diǎn)

return?false;

}

/**

*?多種隱藏軟件盤方法的其中一種

*

*?@param?token

*/

private?void?hideSoftInput(IBinder?token)?{

if?(token?!=?null)?{

InputMethodManager?im?=?(InputMethodManager)?getSystemService(Context.INPUT_METHOD_SERVICE);

im.hideSoftInputFromWindow(token,

InputMethodManager.HIDE_NOT_ALWAYS);

}

}

2. 方法二,(代碼量很小,但是有時(shí)會(huì)失效)

//首選定義變量, 點(diǎn)擊空白鍵盤消失事件定義

private InputMethodManager manager;

//然后在onCreate中初始化

//點(diǎn)擊空白鍵盤消失事件初始化

manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

/**

* 點(diǎn)擊空白處,鍵盤消失事件

*@paramevent*@return*/@Overridepublic booleanonTouchEvent(MotionEvent event) {

//TODO Auto-generated method stubif(event.getAction() == MotionEvent.ACTION_DOWN) {

if(getCurrentFocus() != null&& getCurrentFocus().getWindowToken() != null) {

manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);}

}

return super.onTouchEvent(event);}

原文:http://my.oschina.net/mzzyk/blog/494666

總結(jié)

以上是生活随笔為你收集整理的android 点击空白退出,Android 点击空白处隐藏键盘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。