我需要一个app宽标签,指示调试模式,如果激活则会创建错误报告。 为了将它放在每个活动之上,我将其添加到窗口管理器中。适合应用程序的作品。但是一些配置是通过弹出对话框片段完成的。它们似乎是活动的,但对用户不可见。 我已经尝试了几个布局参数标记,但没有让它正常工作。
以下是添加窗口的代码:
final int LayoutParamFlags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
LayoutParamFlags,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.CENTER;
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
MyLabel label = new MyLabel();
windowManager.addView(label, params);
答案 0 :(得分:0)
最后,我通过测试我脑海中的所有内容,自行解决了这个问题。
将类型从TYPE_SYSTEM_ERROR更改为TYPE_TOAST对我来说很有用。它仍然在所有活动上,对话框也可见。 我不得不添加onAttachedToWindow来设置窗口令牌。
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
params.token = getWindow().getDecorView().getRootView().getWindowToken();
windowManager.addView(bugReportingLabel, params);
}