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

Android監(jiān)聽(tīng)輸入法彈窗和關(guān)閉的實(shí)現(xiàn)方法

 更新時(shí)間:2016年11月15日 14:37:01   作者:海闊天空玩世不恭  
用過(guò)ios的都知道ios上輸入法關(guān)閉的同時(shí)會(huì)自動(dòng)關(guān)閉輸入框,那么在android上如何實(shí)現(xiàn)監(jiān)聽(tīng)輸入法彈出和關(guān)閉呢?接下來(lái)通過(guò)本文給大家分享一種可靠的實(shí)現(xiàn)方式

用過(guò)ios的都知道ios上輸入法關(guān)閉的同時(shí)會(huì)自動(dòng)關(guān)閉輸入框,那么在android上如何實(shí)現(xiàn)監(jiān)聽(tīng)輸入法彈出和關(guān)閉呢?本篇文章就為你提供了一種可靠的實(shí)現(xiàn)方式。

演示效果視頻地址

首先在AndroidManifest中配置

android:windowSoftInputMode="adjustResize"

這樣每次輸入法彈出和關(guān)閉都會(huì)重新計(jì)算高度實(shí)現(xiàn)把布局頂上去的效果

然后我們要自定義一個(gè)布局,監(jiān)聽(tīng)布局大小變化

public class CheckSoftInputLayout extends FrameLayout {
private OnResizeListener mOnResizeListener;
public CheckSoftInputLayout(Context context) {
super(context);
}
public CheckSoftInputLayout(Context context, AttributeSet attrs) {
super(context, attires);
}
public CheckSoftInputLayout(Context context, AttributeSet attrs, int 
defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(21)
public CheckSoftInputLayout(Context context, AttributeSet attrs, int
defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, old);
if (mOnResizeListener != null) {
mOnResizeListener.onResize(w, h, oldw, old);
}
}
public void setOnResizeListener(OnResizeListener listener) { 
this.mOnResizeListener = listener;
}
public interface OnResizeListener {
void onResize(int w, int h, int oldw, int old);
}
}

然后把上面的自定義布局作為跟布局放到你需要的Activity中去,然后在Activity中綁定監(jiān)聽(tīng)事件

mRootLayout.setOnResizeListener(this);
@Override
public void onResize(int w, int h, int oldw, int oldh) {
//如果第一次初始化
if (oldh == 0) {
return;
}
//如果用戶橫豎屏轉(zhuǎn)換
if (w != oldw) {
return;
}
if (h < oldh) {
//輸入法彈出
} else if (h > oldh) {
//輸入法關(guān)閉
setCommentViewEnabled(false, false);
}
int distance = h - old;
EventBus.getDefault().post(new InputMethodChangeEvent(distance,mCurrentImageId));
}

這樣只要輸入法彈出和關(guān)閉就能自動(dòng)實(shí)現(xiàn)監(jiān)聽(tīng),達(dá)到關(guān)閉輸入框的效果,這樣就和蘋果的體驗(yàn)很一致。 到這里就介紹完了,如果有什么好的思路,也歡迎評(píng)論分享點(diǎn)贊! [Github demo地址](https://github.com/gupengcheng/CheckSoftInputDemo)

相關(guān)文章

  • Android Crash與ANR詳細(xì)介紹

    Android Crash與ANR詳細(xì)介紹

    對(duì)于Android開(kāi)發(fā)的人來(lái)說(shuō),想必對(duì)Crash和ANR這倆都不陌生,并且都對(duì)其恨之入骨,因?yàn)樗鼈z的產(chǎn)生會(huì)大大影響用戶體驗(yàn)。所以,在此,結(jié)合本人的開(kāi)發(fā)經(jīng)驗(yàn),對(duì)其做個(gè)總結(jié)
    2022-11-11
  • 談?wù)凙ndroid的三種網(wǎng)絡(luò)通信方式

    談?wù)凙ndroid的三種網(wǎng)絡(luò)通信方式

    Android平臺(tái)有三種網(wǎng)絡(luò)接口可以使用,他們分別是:java.net.*(標(biāo)準(zhǔn)Java接口)、Org.apache接口和Android.net.*(Android網(wǎng)絡(luò)接口)。本文詳細(xì)的介紹,有興趣的可以了解一下。
    2017-01-01
  • Android開(kāi)發(fā)中實(shí)現(xiàn)IOS風(fēng)格底部選擇器(支持時(shí)間 日期 自定義)

    Android開(kāi)發(fā)中實(shí)現(xiàn)IOS風(fēng)格底部選擇器(支持時(shí)間 日期 自定義)

    這篇文章主要介紹了Android開(kāi)發(fā)中實(shí)現(xiàn)IOS風(fēng)格底部選擇器(支持時(shí)間 日期 自定義)的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 導(dǎo)致adb無(wú)法啟動(dòng)的5種情況和解決方法

    導(dǎo)致adb無(wú)法啟動(dòng)的5種情況和解決方法

    這篇文章主要介紹了導(dǎo)致adb無(wú)法啟動(dòng)的5種情況和解決方法,本文列舉了最常見(jiàn)的5種情況和對(duì)應(yīng)解決方法,需要的朋友可以參考下
    2015-04-04
  • 詳解Android項(xiàng)目多服務(wù)端接口適配(超簡(jiǎn)單)

    詳解Android項(xiàng)目多服務(wù)端接口適配(超簡(jiǎn)單)

    這篇文章主要介紹了Android項(xiàng)目多服務(wù)端接口適配(超簡(jiǎn)單),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Android6.0編程實(shí)現(xiàn)雙向通話自動(dòng)錄音功能的方法詳解

    Android6.0編程實(shí)現(xiàn)雙向通話自動(dòng)錄音功能的方法詳解

    這篇文章主要介紹了Android6.0編程實(shí)現(xiàn)雙向通話自動(dòng)錄音功能的方法,結(jié)合實(shí)例形式分析了Android錄音功能的原理、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-07-07
  • SpringBoot實(shí)現(xiàn)短信驗(yàn)證碼登錄功能(案例)

    SpringBoot實(shí)現(xiàn)短信驗(yàn)證碼登錄功能(案例)

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)短信驗(yàn)證碼登錄功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-08-08
  • 詳解Gradle構(gòu)建過(guò)程

    詳解Gradle構(gòu)建過(guò)程

    Gradle是項(xiàng)目構(gòu)建工具,是Google官方推薦的Android項(xiàng)目編譯工具。構(gòu)建工具是可以讓開(kāi)發(fā)者以可執(zhí)行和有序的任務(wù)來(lái)表達(dá)自動(dòng)化的需求。就是將源代碼生成可執(zhí)行程序。本文將詳細(xì)介紹Gradle構(gòu)建過(guò)程
    2021-06-06
  • Android開(kāi)發(fā)筆記之:復(fù)寫按鈕方法

    Android開(kāi)發(fā)筆記之:復(fù)寫按鈕方法

    本篇文章是對(duì)Android中復(fù)寫按鈕方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Android仿QQ列表滑動(dòng)刪除操作

    Android仿QQ列表滑動(dòng)刪除操作

    這篇文章主要為大家詳細(xì)介紹了Android仿QQ列表滑動(dòng)刪除操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評(píng)論

黄浦区| 武邑县| 巴马| 鞍山市| 那坡县| 高唐县| 增城市| 定安县| 英山县| 福清市| 孟州市| 广昌县| 沧源| 井研县| 东至县| 壶关县| 诸城市| 奉新县| 南投县| 南漳县| 沙田区| 内黄县| 靖远县| 怀集县| 漳浦县| 澜沧| 宝应县| 东安县| 南川市| 灵寿县| 商都县| 和顺县| 乌拉特后旗| 江西省| 大冶市| 丰顺县| 高尔夫| 修武县| 顺平县| 马关县| 枣阳市|