• Stars
    star
    995
  • Rank 46,046 (Top 1.0 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 8 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A compatible library for setting status bar color. Support MIUI, Flyme, EMUI3.1. 一行代码调用,布局零入侵。兼容小米,魅族,华为……

StatusBarCompat

Build Status Download

简介

StatusBarCompat是一个用于设置系统状态栏颜色的兼容库,兼容Android 4.4.2(API 19)以上,使用简单,仅需要一行代码的调用。

效果展示

5.1.1运行效果 6.0深色状态栏白色文字 6.0浅色状态栏黑色文字

使用方式

声明仓库

确保在你的根项目的build.gradle中对jcenter的声明:

allprojects {
    repositories {
        jcenter()
    }
}

声明依赖

在你要使用的module的build.gradle文件中声明以下依赖:

    compile 'com.githang:status-bar-compat:0.7'

代码调用

最后在你的Activity的setContentView()方法调用之后,调用以下方法即可。

    StatusBarCompat.setStatusBarColor(this, color, lightStatusBar);

或者是

    StatusBarCompat.setStatusBarColor(this, color);

API文档

API文档参见:https://msdx.github.io/status-bar-compat/

适配支持情况

第三方ROM适配支持

ROM 适配说明
MIUI 调用小米的API适配
Flyme 调用魅族API适配,并且增加不主动设置可能不兼容的Flyme的状态栏的API
EMUI3.1 对于6.0以下5.0及其以上的EMUI,使用4.4.2的方式来处理(EMUI3.1无法使用5.0API设置)

设置失败的机型

型号 系统版本 备注
高通 Andriod L Device1 4.4.4(SDK 19) 状态栏还是为黑色

深色状态栏图标设置支持

  • Android 6.0及以上
  • Flyme
  • MIUI

6.0以下的其他机型因未提供相关API可以把状态栏图标设置为黑色,所以无法支持。请不要再提不在上述范围的手机无法设置深色图标的issue了。

已知的设置状态栏为白色后看不清时间的机型

把状态栏设置为白色或接近白色的颜色可能导致部分机型看不清状态栏的图标与文字,原因是这些机型把设置状态栏半透明改成了全透明,而Android 6.0以下没有官方的API可以把状态栏的图标及字体设置为深色,需要定制的ROM自己提供API支持。因此,不建议把状态栏设置为白色或接近白色的颜色。

目前已知的提供了支持的ROM有MIUI以及Flyme。以下是已知的不支持的机型列表:

型号 系统版本 备注
华硕 K010 4.4.2(SDK 19) 白色字体但有阴影
Lenovo TAB S8-50F 4.4.2(SDK 19) 完全看不到时间
联想 A936 4.4.4(SDK 19) 同上
联想 K80M 4.4.4(SDK 19) 同上

以上具体机型测试结果根据在Testin上随机兼容性测试所得,测试报告地址:http://realauto.testin.cn/s/1amaujufn

已知问题

  • 由于低于6.0以下的系统使用透明状态栏并设置fitsSystemWindows来实现设置状态栏颜色,在一些底部虚拟导航栏给隐藏的机型上,可能会出现界面无法显示在该区域中。如果遇到此问题,你需要把你的App theme指定为AppCompat里的一种。
  • 可能会出现状态栏与标题栏之间有一个与状态栏同样大小的间距,如果出现请调用以下代码:
StatusBarCompat.resetActionBarContainerTopMargin(getWindow(), android.support.v7.appcompat.R.id.action_bar_container);

参考资料:

More Repositories

1

android-crash

[DEPRECATED] android程序崩溃异常处理框架
Java
201
star
2

gradledoc

Gradle 中文文档
193
star
3

androidkit

【已停止维护,请勿fork】android开发框架,可以帮助你大量提高android应用开发效率。
Java
163
star
4

gradle-publish

Gradle scripts to publish aar.
149
star
5

android-proguard-cn

Android混淆规则
IDL
125
star
6

IconTabPageIndicator

带图标文字的ViewPager导航指示器
Java
86
star
7

clip-image

ClipImageView liks wechat avatar cropper
Java
85
star
8

group-recycler-adapter

A RecyclerView adapter to show grouped data
Java
75
star
9

StepView

StepView for android
Java
49
star
10

rank-github-china

Github 中国区排名
Kotlin
39
star
11

AndroidSnippet

Android code snippets
Java
35
star
12

androiddoc

[DEPRECATED]加速打开Android文档的项目。
JavaScript
27
star
13

AndroidPNClient

Base on Androidpn. A android push notification framework based broadcast.
Java
13
star
14

fir-publisher

Gradle plugin for publish apk to fir.im
Groovy
13
star
15

hi-loadmore

Android通用上拉加载布局。
Java
11
star
16

scripts

Some scripts.
Shell
10
star
17

behavior-master

自定义Behavior集合
Java
10
star
18

gradle-doc-apk

Gradle UserGuide apk.
Java
9
star
19

apkUtil

a util to get application info from a apk file
Java
8
star
20

badge-drawable

Kotlin
8
star
21

dinny

Dinny is a library to implement the idea of protocol Activity jumps
Java
7
star
22

kotlin-guides-cn

https://github.com/android/kotlin-guides 的中文翻译
CSS
7
star
23

ActionSheet

ActionSheet for Android.
Java
7
star
24

DrawableWidget

可以在XML中定义drawableLeft, drawableRight等的大小的控件
Java
7
star
25

gradle-translation

Gradle 文档的中文翻译OmegaT项目。
HTML
5
star
26

sophix-patch-tool

3
star
27

hi-chart

Java
3
star
28

dockerfile

Shell
3
star
29

360-jiagu

360加固打包
Shell
2
star
30

tencent-library

1
star
31

SuperLog

A log util for android.
Java
1
star
32

angle

Fork from ANGLE -r86
Java
1
star
33

MetaCOS

MetaCOS
Java
1
star
34

RefreshListView

带下拉刷新,上拉加载,自动加载等功能的ListView。改自寒枫的RefreshListView
Java
1
star