Android 全屏状态监听,Android全屏模式,监听软键盘弹出事件。

Activity设置android:windowSoftInputMode="adjustResize"

LinearLayout l = new LinearLayout(this){

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

int[] loc = new int[2];

getLocationOnScreen(loc);

Log.e("FullScreen","onMeasure r[0]=" + loc[0] + ";r[1]=" + loc[1]);

}

@Override

protected void onLayout(boolean changed, final int l,final int t,final int r,final int b) {

super.onLayout(changed, l, t, r, b);

mNewLayout = true;

}

boolean mNewLayout = true;

@Override

protected void dispatchDraw(Canvas canvas) {

super.dispatchDraw(canvas);

if(mNewLayout){

mNewLayout = false;

final int[] f_loc = new int[2];

getLocationOnScreen(f_loc);

postDelayed(new Runnable() {

@Override

public void run() {

final int[] loc = new int[2];

getLocationOnScreen(loc);

if(loc[1] > f_loc[1]){

//软键盘缩回

Log.d("yangl","onMeasure 软键盘缩回");

}else if(loc[1] < f_loc[1]){

//软键盘弹起来

Log.d("yangl","onMeasure 软键盘弹起来");

}else{

//无变化

Log.d("yangl","onMeasure 软键盘无变化");

}

}

},10);

}

}

@Override

protected void onSizeChanged(int w, int h, int oldw, int oldh) {

super.onSizeChanged(w, h, oldw, oldh);

Log.e("FullScreen","onSizeChanged w= " + w+";h="+ h + ";oldw="+oldw + ";oldh="+oldh);

}

};

setContentView(l);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值