fitsSystemWindows 被 ConstraintLayout 忽略

fitsSystemWindows ignored by ConstraintLayout

我试图在我的应用程序中显示一个 activity,其中状态栏是完全透明的。我将此添加到我的风格中:

<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>

但由于某种原因,我的所有视图都显示在状态栏下方。所有视图都与父视图顶部对齐 app:layout_constraintTop_toTopOf="parent"

我通过将以下代码添加到我的 activity 来修复它:

Window w = getWindow();
w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

因为我想在状态栏后面显示我的布局但仍然保持导航栏不变,这对我有用:

<item name="android:statusBarColor">@android:color/transparent</item> 添加到我的 activity 主题

因为ConstraintLayout似乎不​​尊重fitsSystemWindows,所以把它包在CoordinatorLayout.

android:fitsSystemWindows="true" 添加到我的 CoordinatorLayout。 添加到我的 ConstraintLayout

android:fitsSystemWindows="true"
android:clipToPadding="false"
android:clipChildren="false"