遇见问题的背景:
在做项目的时候,需要使用到悬浮窗的效果,因此需要使用windowManager添加view。一个需求是当悬浮窗拖动到屏幕右边的时候需要动态的给windowManager再添加一个view2,此时下面的view1依然需要响应事件。如果只是单纯的动态的将view2添加到windowManager中,view2会将view1盖住,事件将不再响应。
解决的办法:
我们都知道在使用windowManager的时候需要给windowManager设置LayoutParams,可以通过设置LayoutParams的type来控制view的层级,由于view1是一直需要响应事件的,因此在添加view1的时候将view1的LayoutParams设置为LayoutParams.TYPE_SYSTEM_ALERT
| LayoutParams.TYPE_SYSTEM_OVERLAY
将view2的LayoutParams设置为LayoutParams.TYPE_PHONE,此时view1将会一直位于顶层了。