无法将状态栏颜色更改为半透明黑色 [重复]

Posted

技术标签:

【中文标题】无法将状态栏颜色更改为半透明黑色 [重复]【英文标题】:Can't change status bar colour to translucent black [duplicate] 【发布时间】:2018-06-28 11:53:10 【问题描述】:

我正在尝试将状态栏颜色更改为半透明黑色(android 7.0),但我得到的只是一个灰色状态栏。每当我尝试将状态栏设置为透明或半透明时,我都会得到这种灰色。但是纯色效果很好。 我正在使用折叠工具栏布局,我知道我可以使用 statusBarScrim,但是这个功能也不起作用,我不知道为什么。

输出:

XML:

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


<android.support.design.widget.CoordinatorLayout android:layout_
android:layout_
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_
    android:layout_
    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_
        android:layout_
        android:fitsSystemWindows="true"

        >

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



            <ImageView
                android:id="@+id/parallaxImage"
                android:layout_
                android:layout_
                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_
                android:layout_
                app:layout_scrollFlags="scroll|enterAlways"
                >


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


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


            <RelativeLayout
                android:layout_
                android:layout_
                android:paddingTop="10dp"
                android:background="#b2000000"
                android:layout_gravity="bottom"
                android:fitsSystemWindows="true">

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

                <TextView
                    android:id="@+id/parallaxText"
                    android:layout_
                    android:layout_
                    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_
                    android:layout_
                    android:layout_gravity="bottom"
                    android:paddingTop="10dp"
                  >

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

                    <TextView
                        android:id="@+id/NumTracks"
                        android:layout_
                        android:layout_
                        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));
                

【问题讨论】:

你能把你想要设置的颜色和你得到的输出一起发布吗? 我要设置的颜色是“#b2000000”,输出是灰色。 嗨***.com/users/8745264/rektirino你能在下面试试我的回答吗 如果您使用类似的 Gary 颜色 #b2000000 则输出获取灰色使用差异。颜色并检查它 【参考方案1】:

请使用这个主题

<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>

【讨论】:

【参考方案2】:

你可以试试这个:

 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);
   

希望这对您有所帮助...如果您需要任何帮助,您可以询问

【讨论】:

无变化,结果相同 @Rektirino 我已将此代码用于 7.0 版,效果很好 是的!它变成灰色。 @Rektirino 不,这不可能你能看到我屏幕短吗? 请显示屏幕截图

以上是关于无法将状态栏颜色更改为半透明黑色 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

iPhone - 应用程序上方的半透明黑色状态栏

带有黑色半透明状态栏的 iPhone 上的 Web 应用程序:视口高度似乎是错误的

iOS Swift TabBar状态栏文字颜色毛刺半白半黑

ios PWA 中的黑色半透明不起作用

Flutter沉浸式透明状态栏|flutter自定义凸起BottomAppBar导航

黑色半透明导航栏在第一次拖动前不透明