无法将状态栏颜色更改为半透明黑色

时间:2018-01-19 09:20:44

标签: android android-layout android-collapsingtoolbarlayout android-statusbar

我正在尝试将状态栏颜色更改为半透明黑色(android 7.0),但我得到的只是一个灰色状态栏。每当我尝试将状态栏设置为透明或半透明的东西时,我都会看到这种灰色。但纯色工作正常。 我正在使用折叠工具栏布局,我知道我可以使用statusBarScrim,但是这个功能也不起作用,我无法弄清楚原因。

输出:enter image description here

XML:

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


<android.support.design.widget.CoordinatorLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#d8000000"
android:fitsSystemWindows="true"
xmlns:android="http://schemas.android.com/apk/res/android">



<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView_artistSong"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical"
    android:scrollbarSize="10dp"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">
</android.support.v7.widget.RecyclerView>


    <android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="360dp"
        android:fitsSystemWindows="true"

        >

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapse_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true"
            app:contentScrim="#b2000000"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleMarginEnd="64dp">



            <ImageView
                android:id="@+id/parallaxImage"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="centerCrop"
                android:fitsSystemWindows="true"
                app:layout_collapseMode="parallax"
                app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed" />



            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="100dp"
                app:layout_scrollFlags="scroll|enterAlways"
                >


                <ImageView
                    android:id="@+id/backToArtist"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_action_name"
                    android:paddingLeft="10dp"
                    android:paddingTop="10dp"
                    android:clickable="true"
                    />


            </android.support.v7.widget.Toolbar>


            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:paddingTop="10dp"
                android:background="#b2000000"
                android:layout_gravity="bottom"
                android:fitsSystemWindows="true">

                <ImageView
                    android:id="@+id/backToArtist2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_action_name"
                    android:paddingLeft="10dp"
                    android:paddingTop="20dp"
                    />

                <TextView
                    android:id="@+id/parallaxText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingLeft="60dp"
                    android:textSize="24sp"
                    android:text="Hello"
                    android:singleLine="true"
                    android:textColor="#ffffff"
                    android:gravity="top"
                    />

                <LinearLayout
                    android:layout_below="@+id/parallaxText"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom"
                    android:paddingTop="10dp"
                  >

                    <TextView
                        android:id="@+id/NumAlbums"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textColor="#fff"
                        android:paddingLeft="60dp"
                        android:text="@string/albums"
                        />

                    <TextView
                        android:id="@+id/NumTracks"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/tracks"
                        android:textColor="#fff"
                        android:paddingLeft="100dp"/>

                </LinearLayout>

            </RelativeLayout>






        </android.support.design.widget.CollapsingToolbarLayout>




    </android.support.design.widget.AppBarLayout>



</android.support.design.widget.CoordinatorLayout>

样式:

<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">#b2000000</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>
<style name="AppTheme.NoActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowFullscreen">false</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">true</item>
</style>

尝试使用这些:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                    Window window = getWindow();
                    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
                     window.setStatusBarColor(getResources().getColor(R.color.translucent_black2));
                }

2 个答案:

答案 0 :(得分:0)

你可以尝试这个:

 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getWindow().setStatusBarColor(ContextCompat.getColor(MainActivity.this, R.color.translucent_black2));
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
   }

希望这有助于你...如果你需要任何帮助,你可以问

答案 1 :(得分:0)

请使用此主题

<style name="ThemeFullscreen" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>