removeView时Android屏幕闪烁

时间:2015-06-19 22:26:07

标签: android android-fragments android-windowmanager

我有一个活动和几个片段。对于只有一个片段,我想禁用屏幕截图功能。在onCreate函数中,我为窗口设置了标志,但我发现这不起作用。也许系统需要重新加载窗口。所以我尝试删除当前窗口,然后将其添加回来。这确实有效,但我发现屏幕将是黑色一秒钟。如何解决此屏幕闪存问题?这是片段的onCreate。我无法在Activity中设置标记,因为这将禁用所有片段的屏幕截图。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        getActivity().getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
        Window window = getActivity().getWindow();
        WindowManager wm = getActivity().getWindowManager();
        wm.removeViewImmediate(window.getDecorView());
        wm.addView(window.getDecorView(), window.getAttributes());

    }
}

1 个答案:

答案 0 :(得分:0)

我相信你是正确的,你需要在活动的setContentView(...)之前设置那个标志,否则你可以尝试在设置FLAG_SECURE之后使用getActivity().recreate()