目标:在android notch区域内延伸/绘制,特别是在横向模式下。使用2个物理设备进行测试会导致凹口区域在横向模式下不可用(黑色)。
注:在PORTRAIT模式下,使用extendBodyBehindAppBar、ExtendBody和SystemChrome.setEnabledSystemUI模式等成功地扩展到凹口区域,但当屏幕旋转到横向时,凹口区域会被截断而不被使用。
问题:在大多数有弯曲角落的设备上,当以横向模式扩展屏幕时,屏幕看起来很愚蠢,不平衡,凹口部分有一个方形的黑色区域,另一端是弯曲的。
干杯,伙计们。
事实证明,就目前情况来看,这是一个悬而未决的问题。请参阅Github第59236期https://github.com/flutter/flutter/issues/59236
在NATIVE Android 3上,存在用于控制裁剪"凹口"区域中的绘图的选项:
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
- 这是默认行为。在纵向模式下,内容会渲染到剪切区域,但在横向模式下,则会使用信箱。LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
- 内容以纵向和横向模式渲染到剪切区域中。LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
- 内容从不渲染到剪切区域中
可以在此处找到更多本机Android信息:https://developer.android.com/guide/topics/display-cutout
目前,与LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT相当的Android原生版本似乎陷入了困境。
如果有人能解决这个问题(也许是平台频道的问题?),请发表评论。
我也遇到过同样的问题,但看起来除了之外
SystemChrome.setEnabledSystemUIOverlays([]);
我们应该将以下内容添加到Android style.xml中:
<style name="AppTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
</style>
在三星S21 Ultra的一个颤振演示项目上测试了这一点,该项目有一个缺口,在纵向和横向模式下一切都如预期。
请注意,我使用的是颤振1.22.6,但我相信同样的方法也适用于最近的颤振。