相关疑难解决方法(0)

如何更改android中的状态栏颜色

首先,它不是重复,如在如何更改Android状态栏的背景颜色

如何更改状态栏颜色,该颜色应与导航栏中的颜色相同.

我希望状态栏颜色与导航栏颜色相同

在此输入图像描述

android statusbar android-notifications android-navigation

371
推荐指数
17
解决办法
70万
查看次数

Android:具有动态actionBar颜色和DrawerLayout的透明状态栏

我有一个活动DrawerLayout.我们的客户要求我们根据从中选择的项目动态更改操作栏颜色和此活动的相应状态栏颜色DrawerLayout.这很容易做到.但是,我的问题是,当我动态更改状态栏颜色时,我无法保持状态栏透明.当我打开抽屉时,彩色状态栏覆盖了这样的顶部DrawerLayout:

错误的布局

但是,我希望我DrawerLayout看起来像这样:

正确的布局

我可以使用以下行:

<item name="android:windowTranslucentStatus">true</item>
Run Code Online (Sandbox Code Playgroud)

但是,我的问题不在于我无法设置状态栏的透明度.我的问题是动态更改状态栏和操作栏颜色不起作用windowTranslucentStatus.colorPrimaryDark即使我打电话,我的状态栏颜色仍然是(上图中状态栏上可见的芥末黄色)getWindow().setStatusBarColor().

现在,我跟着这个教程和这个这个在许多其他计算器的问题,但未能解决该问题.所有这些文章都说,ActionBar一旦我设置为windowTranslucentStatus,将移动到状态栏下方的顶部(以便状态栏与操作栏重叠)true.之后,我应该能够在操作栏中添加一些填充,只需更改操作栏颜色也会导致颜色相同的深色状态栏,因为状态栏实际上是半透明的并且与我的操作栏重叠.但是,出于某种原因,在我的情况下不会发生这种情况.操作栏保持它是我是否设置fitsSystemWindowstruefalse或完全删除该属性.操作栏始终位于状态栏下方,当然,如果我设置透明度,则状态栏始终为黄色.

我还尝试以编程方式更改状态栏颜色时设置alpha.这确实使状态栏有点透明,但它看起来很奇怪,因为它不再是黑暗.删除CoordinatorLayout也没有帮助.我花了几个小时试图解决这个问题,现在非常沮丧.任何帮助是极大的赞赏.

我的activity_main:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">

<include
    layout="@layout/app_bar_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true">

    <include layout="@layout/nav_header_main" />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/nav_menu_recyclerview"
        android:layout_width="match_parent" …
Run Code Online (Sandbox Code Playgroud)

xml android drawerlayout android-statusbar android-coordinatorlayout

7
推荐指数
1
解决办法
1979
查看次数

不能将DrawerLayout放在StatusBar下

我有一个活动与Navigation Drawer使用ScrimInsetsFrameLayout我能够将布局放在下面StatusBar,一切都很完美.然后,我决定更换颜色的Toolbar,并StatusBarpng所有的活动布局的背景.我在模拟器上运行应用程序(带有android 6.0的Nexus 5),结果正是我想要的,你可以在下面的图像#1中看到,但当我尝试使用我的设备(带有android 5.0的Galaxy Note 3)时,里面的布局ScrimInsetsFrameLayout超越了StatusBar Image#2.我无法理解什么是错的,你能帮助我吗?

这是我values-v21和我的activity.xml

<style parent="Theme.AppCompat.Light.NoActionBar" name="AppTheme_Activities">

    <item name="android:colorPrimary">@android:color/transparent</item>
    <item name="android:colorPrimaryDark">@color/insetF</item>
    <item name="android:navigationBarColor">@color/insetF</item>
    <item name="android:colorAccent">@color/primary</item>
    <item name="android:colorEdgeEffect">@color/primary</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:statusBarColor">@color/insetF</item>
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>

</style>



<?xml version="1.0"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:id="@+id/drawer"
    android:fitsSystemWindows="true"
    android:background="@drawable/background"> <!--png image-->

    <FrameLayout
        android:orientation="vertical"
        android:layout_height="match_parent"
        android:layout_width="match_parent">

        <include layout="@layout/toolbar_activities" android:id="@+id/toolbar_layout"/>

        <FrameLayout
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:id="@+id/content_frame">

        </FrameLayout>

    </FrameLayout>

    <com.example.myapplication.ScrimInsetsFrameLayout
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/linearLayout"
        android:layout_width="304dp"
        android:layout_height="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android statusbar navigation-drawer

6
推荐指数
1
解决办法
1594
查看次数