android - 是否有用于原生 Android 开发的 SafeArea Widget?

标签 android xml android-constraintlayout

我正在尝试在带缺口的 Android 设备上占用尽可能多的可用空间。在 Flutter 开发中,有一个名为 SafeArea 的小部件,它会根据设备是否有凹槽自动调整您的 View 。即使在 iOS 开发中,每当我们使用 storyboard 添加 constraints 时,我们都可以根据 SafeArea 添加它。 但是我在原生 Android 开发中找不到类似的东西。

在 v28 的 styles.xml 中,我添加了如下内容

 <style name="TPAFTheme" parent="@style/Theme.AppCompat.Light.NoActionBar"> 
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowActionBar">false</item> 
        <item name="android:windowFullscreen">true</item> 
        <item name="android:windowContentOverlay">@null</item> 
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item> 
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowTranslucentNavigation">true</item>
    </style>  

但是是否可以在布局文件本身中检测设备是否有 Notch 并据此调整布局。 我在我的应用程序中使用 Constraintlayout。由于我的应用程序顶部有图像,因此如果设备顶部有缺口,它就会被裁剪。 任何帮助将不胜感激。

最佳答案

我终于找到了答案。只需在您的 ConstraintLayout 或您正在使用的任何其他顶级布局中使用 android:fitsSystemWindows="true"

关于android - 是否有用于原生 Android 开发的 SafeArea Widget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58518975/

相关文章:

android - 通过 Google Play 对 Android 游戏进行 Alpha 测试

android - 游标返回错误的联系人ID

android - 如何使多个不同的屏幕配置映射到一小组布局,而不必复制我的布局 XML 的某些部分?

android - 如何过滤和执行特定的Gradle任务?

c - 使用 libxml2 通过路径获取属性值?

xml - 将 LINQ 嵌套到 XML

javascript - XML 解析意外行为 LiScroll

android - 为什么 ConstraintLayout 1.1.0 layout_constraintWidth_percent 和 layout_constraintDimensionRatio 不能一起工作?

android - 将布局滑动到屏幕中间(向上滑动),然后向上或向下滑动

android - 使用 ConstraintLayout 和 CoordinatorLayout 在滚动时设置动画