android因各大厂商自己定制Rom导致悬浮式通知栏在很多手机上显示不出来等各种问题,没办法,最后采取了使用WindowManager的方式来做。
效果
具体代码就帖了,网上很多介绍WindowManager使用的例子。这里仅记录一些有用的小知识点。
1.WindowManager布局拓展至状态栏,需要添加属性
layoutParams.flags=FLAG_TRANSLUCENT_STATUS;
想要将状态栏的布局高度空出来,windowManager add的view的布局文件添加
android:clipChildren="false"
android:clipToPadding="false"
android:fitsSystemWindows="true"
2.设置悬浮窗下面的View可点击,
layoutParams.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
官网解释
Window flag: even when this window is focusable (its
* {@link #FLAG_NOT_FOCUSABLE} is not set), allow any pointer events
* outside of the window to be sent to the windows behind it. Otherwise
* it will consume all pointer events itself, regardless of whether they
* are inside of the window.