android popupwindow监听返回键,最近开发总结(关于键盘监听,单例模式,popupWindow)...

这篇博客总结了在Android开发中如何使用PopupWindow监听键盘弹出与关闭,包括通过监听视图布局变化实现键盘事件,以及使用Fragment避免Activity耦合。还介绍了采用单例模式优化PopupWindow的性能。
摘要由CSDN通过智能技术生成

最近开发需求:

实现类似qq评论弹出框来实现评论功能.

使用popupWindow实现

这个是我的第一反应,使用popupWindow来实现,于是说做就做。但是写着写着就出现了问题,我怎么去监听键盘?于是去向大神明明请教,明明给了我他之前写过的关于监听键盘的demo供我参考,于是就有了这个关于键盘监听的总结

1.1监听键盘(虽然最终没有使用,但是也记录下来作为积累)

对键盘的监听实现是使用ViewTreeObserverOnGlobalLayoutListener监听方法来实现的具体流程是:

OnGlobalLayoutListener方法中获取程序显示界面,记录程序显示界面与改变之前的高度差(键盘高度)。实现代码如下:

public class TestLayout extends RelativeLayout {

private Context mContext;

private int mOldh = -1;

private int mNowh = -1;

protected int mScreenHeight = 0;//程序显示区域底部

protected boolean mIsSoftKeyboardPop = false;

public TestLayout(Context context, AttributeSet attrs) {

super(context, attrs);

this.mContext = context;

getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

Rect r = new Rect();

//获取程序的显示区域

((Activity) mContext).getWindow().getDecorView().getWindowVisibleDisplayFrame(r);

if (mScreenHeight == 0) {

mScreenHeight = r.bottom;

}

mNowh = mScreenHeight - r.bottom;

if (mOldh != -1 && mNowh != mOldh) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值