如何在Window Manager参数中添加LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES?

问题描述 投票:0回答:1

我正在创建一个Android应用,其中通过使用服务和窗口管理器在所有应用之上显示浮动视图。我正在尝试在Window Manager参数中添加WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES,以使布局可以与显示切口重叠。但看来这对我来说不起作用。

我已经尝试过以两种方式添加它:

  1. 通过使用XML样式:

    <style name="OverlayTheme">
      <item name="android:windowLayoutInDisplayCutoutMode">
        shortEdges <!-- default, shortEdges, never -->
      </item>
    </style>
    

    并在我的布局根视图中添加了此样式。但这不起作用。

  2. 通过在我的服务中使用JAVA代码:

    params = new WindowManager.LayoutParams(
                        WindowManager.LayoutParams.MATCH_PARENT,
                        WindowManager.LayoutParams.MATCH_PARENT,
                        WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
                        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                                | WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
                                | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                        PixelFormat.TRANSLUCENT);
    

    它也不起作用。我不确定是否正确应用了布局参数。请帮助我找出问题所在。预先感谢。

android android-layout android-service android-windowmanager display-cutouts
1个回答
0
投票

尝试在Activity中设置:

window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
© www.soinside.com 2019 - 2024. All rights reserved.