Android O中的叠加布局崩溃

时间:2017-09-22 17:05:26

标签: android android-8.0-oreo

我使用此代码在我的应用中显示叠加层布局。在Android 8.0" Oreo"它崩溃了

WindowManager.LayoutParams playerParams = new WindowManager.LayoutParams(
        ViewGroup.LayoutParams.MATCH_PARENT,
        ViewGroup.LayoutParams.MATCH_PARENT,
        WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
        WindowManager.LayoutParams.FLAG_FULLSCREEN,
        PixelFormat.TRANSLUCENT);

我发现在O中不推荐使用此TYPE_SYSTEM_ERROR。是否有其他方法可以显示布局。

1 个答案:

答案 0 :(得分:2)

我也面临同样的问题 TYPE_SYSTEM_ERROR 在oreo中已弃用所以如果我们必须使用它,我们需要这样做

WindowManager.LayoutParams params;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            PixelFormat.TRANSLUCENT);
} else {
    params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.MATCH_PARENT,
            WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            PixelFormat.TRANSLUCENT);
}

你可以尝试一下。