最近要做一个需求:在activity上始终保留一个小尾巴,即上下两层的原理。 实现这个要么1.悬浮框(windowManager 系统级的)会屏蔽好多东西(返回键,dialog)等。2.popuwindow,一般只是在事件触发才弹出,初始化的时候报错。3.放在 frameLayout上 叠加 。
刚开始做的时候走了好多的弯路。先是在frameLayout上叠加后来整体滑动的时候卡,后来改成了悬浮框,但是发现屏蔽了好多东西。最后又改成了popuWindow.初始化时报错后来查了资料在onStart()里启动一个线程定时器 用handler 接收:代码如下 : 开始:
private Handler mHandler = new Handler(){public void handleMessage(Message msg) { switch (msg.what) {
case 13:showTail();break;}};}; 在onStt里:protected void onStart() { Timer timer = new Timer(); if(null == popuWindow ){timer.schedule(new initPopupWindow(), 200);
}
super.onStart();
}
public class initPopupWindow extends TimerTask{public void run() {Message message = new Message();
message.what = 13;
mHandler.sendMessage(message);}
}
放在onStart里是需要判断一下 ,按返回键是又初始化一次,会报不能在加一个parent的错误,所以需要一个判断