代码之家  ›  专栏  ›  技术社区  ›  Bart Bergmans

ConstraintLayout忽略fitsSystemWindows

  •  8
  • Bart Bergmans  · 技术社区  · 7 年前

    我试图在我的应用程序中显示一个状态栏完全透明的活动。我在我的风格中添加了以下内容:

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

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

    enter image description here

    2 回复  |  直到 7 年前
        1
  •  7
  •   Bart Bergmans    7 年前

    我通过在活动中添加以下代码来修复它:

    Window w = getWindow();
    w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
    
        2
  •  2
  •   Orgmir    6 年前

    由于我想在状态栏后面显示我的布局,但仍保持导航栏不变,这对我来说很有用:

    添加 <item name="android:statusBarColor">@android:color/transparent</item> 至我的活动主题

    自从 ConstraintLayout 似乎不尊重 fitsSystemWindows ,用 CoordinatorLayout

    添加 android:fitsSystemWindows="true" 给我的 协调人布局 。 添加到我的 ConstraintLayout约束

    android:fitsSystemWindows="true"
    android:clipToPadding="false"
    android:clipChildren="false"
    
    推荐文章