Android监听输入法d窗和关闭的实现方法

Android监听输入法d窗和关闭的实现方法,第1张

概述用过ios的都知道ios上输入法关闭的同时会自动关闭输入框,那么在android上如何实现监听输入法d出和关闭呢?本篇文章就为你提供了一种可靠的实现方式。

用过ios的都知道ios上输入法关闭的同时会自动关闭输入框,那么在androID上如何实现监听输入法d出和关闭呢?本篇文章就为你提供了一种可靠的实现方式。

演示效果视频地址

首先在AndroIDManifest中配置

androID:windowsoftinputMode="adjustResize"

这样每次输入法d出和关闭都会重新计算高度实现把布局顶上去的效果

然后我们要自定义一个布局,监听布局大小变化

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,intdefStyleAttr,int defStyleRes) {super(context,defStyleAttr,defStyleRes);}@OverrIDeprotected voID onSizeChanged(int w,int h,int olDW,int oldh) {super.onSizeChanged(w,h,olDW,old);if (mOnResizeListener != null) {mOnResizeListener.onResize(w,old);}}public voID setonResizeListener(OnResizeListener Listener) { this.mOnResizeListener = Listener;}public interface OnResizeListener {voID onResize(int w,int old);}}

然后把上面的自定义布局作为跟布局放到你需要的Activity中去,然后在Activity中绑定监听事件

mRootLayout.setonResizeListener(this);@OverrIDepublic voID onResize(int w,int oldh) {//如果第一次初始化if (oldh == 0) {return;}//如果用户横竖屏转换if (w != olDW) {return;}if (h < oldh) {//输入法d出} else if (h > oldh) {//输入法关闭setCommentVIEwEnabled(false,false);}int distance = h - old;EventBus.getDefault().post(new inputMethodChangeEvent(distance,mCurrentimageID));}

这样只要输入法d出和关闭就能自动实现监听,达到关闭输入框的效果,这样就和苹果的体验很一致。 到这里就介绍完了,如果有什么好的思路,也欢迎评论分享点赞! [Github demo地址](https://github.com/gupengcheng/CheckSoftinputDemo)

总结

以上是内存溢出为你收集整理的Android监听输入法d窗和关闭的实现方法全部内容,希望文章能够帮你解决Android监听输入法d窗和关闭的实现方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1147758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存