CollapsingToolBarLayout和状态栏透明度

时间:2016-08-03 08:33:59

标签: android transparency statusbar android-coordinatorlayout android-collapsingtoolbarlayout

我正在尝试将我的状态栏覆盖在我的内容上,其中包括一个CollapsingToolBarLayout(显然在CoordinatorLayout内)。所以这是我目前能够实现的目标;

我的布局抽样如下:

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="240dp"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        android:fitsSystemWindows="false"
        app:contentScrim="?attr/colorPrimary">

        <ImageView
            android:id="@+id/employeeAvatarImageView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            app:layout_collapseMode="parallax" />

在源头,我做了以下事情;

    private void setupDecorView() {
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);        
    }

    private void setupStatusBar() {
        Window window = getWindow();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
          window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
         window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.setStatusBarColor(Color.parseColor("#3F51B5FF"));                 

        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,   WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
           window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        } else {
        }
    }

我一直在初看这个图像。状态栏具有原始颜色 - 没有透明度。

enter image description here

然而,当我第一次尝试滚动时,状态栏会获得我设置的透明颜色,并且需要如下所示:

enter image description here

那么可能是什么问题?有什么想法吗?

0 个答案:

没有答案