折叠时透明的StatusBar [英] Transparent StatusBar when collapsed

查看:85
本文介绍了折叠时透明的StatusBar的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有三个工作状态栏.但是,当CollapsingToolbar折叠时,状态栏将保持透明.
如果折叠,我希望状态栏具有PrimaryDark颜色.

I have three working status bars. But when the CollapsingToolbar is collapsed, a status bar remains transparent.
I want the status bar to have the PrimaryDark color if collapsed.

如何检测状态栏是否合拢并删除透明度?

How do I detect if the status bar is collapsed and remove the transparency?

打印-展开:

打印-折叠:

XML代码:

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

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentScrim="#f15b6e"
            app:expandedTitleGravity="bottom"
            android:background="@android:color/white"
            app:expandedTitleMarginBottom="170dp"
            app:expandedTitleMarginStart="10dp"
            app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">




            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="225dp"
                android:fitsSystemWindows="true">

                <ImageView
                    android:id="@+id/main.backdrop"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/nav_header_height"
                    android:src="@drawable/hair"
                    app:layout_collapseMode="parallax"
                    android:adjustViewBounds="true"
                    android:fitsSystemWindows="true"
                    android:cropToPadding="false"
                    android:scaleType="fitXY"
                    />

                <FrameLayout
                    android:layout_width="match_parent"
                    android:layout_height="225dp"
                    android:background="@drawable/gradient_bg">

</FrameLayout>

推荐答案

尝试一下

AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.app_bar_layout_edit_profile);
        appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
            boolean isShow = false;
            int scrollRange = -1;

            @Override
            public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
                if (scrollRange == -1) {
                    scrollRange = appBarLayout.getTotalScrollRange();
                }
                if (scrollRange + verticalOffset == 0) {       
                      Window window = activity.getWindow();
                      window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

                      window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                      window.setStatusBarColor(activity.getResources().getColor(R.color.primary_color));


                    isShow = true;
                } else if (isShow) {
                    collapsingToolbarLayout.setTitle(" ");
                    isShow = false;
                    Window w =PerfilEmpresaActivity.this.getWindow(); 
                    w.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATU‌​S, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                }
            }
        });

这篇关于折叠时透明的StatusBar的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆