最近要做一个需求:在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的错误,所以需要一个判断
这个定时器的时间很特别 100 时我的老是报错