我正在尝试在锁定屏幕上显示 DialogFragment。 这必须在用户通过新的键盘锁小部件功能触发操作时发生。
特别是它显示了一个时间选择器对话框,但用户只有在解锁屏幕时才能看到它。即使屏幕已锁定,我如何设法显示它?
我已经尝试了这些标志的所有组合,但没有成功:
AlertDialog dialog = dBuilder.create();
Window window = dialog.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+ WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
+ WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
+ WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
这在 onCreateView 中调用。
感谢您的支持!
最佳答案
对话框窗口不显示在锁定屏幕上,因为它们是 float 窗口,我无法告诉您 Android 不显示它们的实际原因,但这可能与绘制底层锁定屏幕组件有关,因为就所有 Intent 和目的而言,这些都是“安全组件”。
之前处理过你的问题,我最后做的是做一个单独的 Activity ,使用 Activity.getWindow().setFlags()
将你上面的窗口标志设置到 Activity 的窗口,然后显示我的对话框 fragment 。它不是很漂亮,但它似乎是在正确设置时可靠 工作的最接近的东西。幸运的是,在 UI 方面,您可以将 Activity 的主题设置为 Theme.Wallpaper.NoTitleBar
,这看起来很不错。
关于android - 在锁定屏幕上显示 Dialogfragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13756524/