协调器布局和透明状态栏

时间:2016-05-01 00:19:13

标签: android android-layout android-design-library

我目前正在尝试使用协调器布局来折叠图像 - 在具有透明状态栏的主题中 - 但是有三个问题困扰着我:

  1. 当Activity启动时,状态栏后面没有显示图像(如果我删除了coordinatorlayout,它可以正常工作);
  2. 当我向上滚动时,我想将状态栏更改为纯色,但仍有一段图像显示;
  3. 在图片底部添加AppBarLayout和CollapsingToolbarLayout后 - 状态栏的高度相同 - 得到剪切;
  4. image below status bar - even though it is set to be transparent in the theme 图像保持在状态栏下方 - 即使在主题中设置为透明

    Status bar after collapsing - it should have a solid color 折叠后的状态栏 - 它应该是纯色

    代码:

    <?xml version="1.0" encoding="utf-8"?>
    
    <android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorPrimary"
        android:orientation="vertical">
    
        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true">
    
            <android.support.design.widget.CollapsingToolbarLayout
                android:id="@+id/collapsing_toolbar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:fitsSystemWindows="true"
                app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"
                app:statusBarScrim="@color/colorPrimary"
                app:contentScrim="@color/colorPrimaryDark">
    
                <RelativeLayout
                    android:id="@+id/cover_wrapper"
                    android:layout_width="match_parent"
                  android:layout_height="@dimen/rsc_character_details_cover_height">
    
                    <ImageView
                        android:id="@+id/cover"
                        android:layout_width="match_parent"                 android:layout_height="@dimen/rsc_character_details_cover_height"/>
                </RelativeLayout>
            </android.support.design.widget.CollapsingToolbarLayout>
        </android.support.design.widget.AppBarLayout>
    
        <android.support.v4.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/cover_wrapper"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:weightSum="6">
    
               ...
            </LinearLayout>
        </android.support.v4.widget.NestedScrollView>
    </android.support.design.widget.CoordinatorLayout>
    

    这就是我设置状态栏透明度的方式:

    <item name="android:windowTranslucentStatus">true</item>
    

    任何帮助将非常感谢。 非常感谢你。

1 个答案:

答案 0 :(得分:2)

对于图像未显示在状态栏后面并被切断的问题,状态栏区域中应显示的任何内容都应为android:fitsSystemWindows="true"。即。您的cover_wrappercover