在Kitkat上使用fitsSystemWindows填充错误

时间:2014-03-21 13:29:22

标签: android android-layout

我正在尝试使用Kitkat的transparent navigation bars功能,我得到了一个奇怪的效果:

当我将fitsSystemWindows属性添加到true时,填充似乎会添加到我的视图底部。此属性将添加到第一个视图,因此它不会与顶部对齐并显示在状态栏后面。

这就是我想要和期待的: enter image description here

但这就是我得到的: enter image description here

我也用TextView s测试了它,结果相同。我无法让它工作,我想我错过了什么。

以下是我的代码:

档案 values-19/styles.xml

<style name="AppTheme" parent="android:Theme.Holo.NoActionBar.TranslucentDecor">
</style>

我的布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#800"
    android:orientation="vertical" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#80f0"
        android:fitsSystemWindows="true"
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#800f"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您应该将android:fitsSystemWindows放在LinearLayout而不是ImageView上。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#800"
    android:orientation="vertical"
    android:fitsSystemWindows="true" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#80f0"        
        android:src="@drawable/ic_launcher" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#800f"
        android:src="@drawable/ic_launcher" />

</LinearLayout>