在frameLayout第二次使用android:fitsSystemWindows="true"
两次时
android:fitsSystemWindows="true"
被忽略,我得到图像中显示的结果。我期待第二个框架布局与第一个不在导航栏或状态栏下面的框架布局相同。为什么会这样?
我使用的布局:
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/colorAccent" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:fitsSystemWindows="true">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary" />
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:fitsSystemWindows="true">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimaryDark" />
</FrameLayout>
</LinearLayout>
和活动风格
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
答案 0 :(得分:1)
请求将给定的窗口插入应用于第二个视图。你需要在应用之后立即这样做。
ViewCompat.dispatchApplyWindowInsets(View view, WindowInsetsCompat insets)
所以请将听众设置为第一个视图。
ViewCompat.setOnApplyWindowInsetsListener(View v, OnApplyWindowInsetsListener listener)