当前位置: 首页 > 知识库问答 >
问题:

Android材质:状态栏颜色不会改变

郤飞英
2023-03-14

我正在开发一个简单的应用程序来测试材料设计。我正在使用com.android.support:appcompat-v7:21.0.0,我的活动如下所示:

public class MyActivity extends ActionBarActivity {
   ...
}

布局定义为:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MyActivity">

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="128dp"
        android:minHeight="?attr/actionBarSize"
        android:background="?attr/colorPrimaryDark"/>
</LinearLayout>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary500</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark700</item>
</style>

我想改变Android5前的状态栏颜色,并将其设置为colorprimarydark,但我找不到方法。我试着用:

getWindow().setStatusBarColor(..)

但是setStatusBar颜色可以从第21级开始使用。为什么如果我在主题中定义ColorPrimaryDark并使用appcompact,状态栏不会改变颜色?有人能帮忙吗?

共有1个答案

颜昕
2023-03-14

状态栏是操作系统拥有的系统窗口。在5.0之前的Android设备上,应用程序没有权限更改颜色,因此AppCompat库不能支持旧平台版本。AppCompat所能做的最好的事情就是支持为ActionBar和应用程序中的其他常见UI小部件着色。

 类似资料:
  • 我开始学习Android材质设计。我学到了Lollipop版本的一些新功能。今天我尝试根据图像的颜色改变工具栏和状态栏的颜色。谁能指导我或提供任何链接如何做这一点? styles.xml: 主要活动: colors.xml:

  • 材料规格显示禁用按钮状态,看起来是灰色的。 https://www.material.io/design/components/buttons.html#切换按钮 只是默认情况下没有在材料Android组件中实现?材料组件是否定义了禁用的按钮状态器?

  • 如果你认为它重复了一些其他的问题,那么我应该让你现在我已经尝试了3,4页的谷歌搜索,也实现了他们。

  • 嘿,我正在尝试改变状态栏的颜色,使其与动作栏的颜色相同(可能是透明的)。在Android Lolipop上,这不是问题,但在Kitkat上,它看起来像这张图片 我尝试了许多其他的解决方案,但仍然没有解决它。 以下是V19XML样式

  • 问题内容: 我正在尝试将状态栏的颜色更改为蓝色或其他某种颜色。 这可能吗,或者Apple不允许吗? 问题答案: 注意:此解决方案在iOS 13及更高版本下失败。 Plist中的第一个设置为 输出屏幕截图如下

  • 还有黑色的图标,可能吗? 谢谢 编辑: M 开发人员预览版中的新增功能:windowLightStatusBar。在主题中打开它会告诉系统使用深色前景,这对于浅色状态栏很有用。请注意,M 预览似乎有一个错误,其中通知图标保持白色,而系统状态图标正确更改为半透明黑色。