android软键盘弹出隐藏的监听
通过网上搜索关于软键盘的隐藏弹出的监听,有几种方式,其中最有效的方式是在View的Onlayout()里面做文章
具体代码:
将布局视图自定义,重写onlayout()方法,然后在主Activity里面调用接口就可以了
/** * 为了监听软键盘的弹出隐藏 * */ public
class
ResizeLayout extends
LinearLayout { private
InputListener mListener; public
interface
InputListener { void
OnInputListener( boolean
isHideInput); } public
void
setOnResizeListener(InputListener l) { mListener = l; } public
ResizeLayout(Context context, AttributeSet attrs) { super (context, attrs); } private
boolean
mHasInit = false ; private
boolean
mHasKeyboard = false ; private
int
mHeight; @Override protected
void
onLayout( boolean
changed, int
l, int
t, int
r, int
b) { // TODO Auto-generated method stub super .onLayout(changed, l, t, r, b); if
(!mHasInit) { mHasInit = true ; mHeight = b; System.out.println( "mHeight= "
+ b); } else
{ mHeight = mHeight < b ? b : mHeight; } if
(mHasInit && mHeight > b) { // mHeight代表键盘的真实高度 ,b代表在窗口中的高度 mHeight>b mHasKeyboard = true ; mListener.OnInputListener( false ); } if
(mHasInit && mHasKeyboard && mHeight == b) { // mHeight = b mHasKeyboard = false ; mListener.OnInputListener( true ); } } |
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。