• Stars
    star
    1,230
  • Rank 38,157 (Top 0.8 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated over 6 years ago

Reviews

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

Repository Details

Android沉浸式效果的实现,状态栏和导航栏均支持设置颜色、渐变色、图片、透明度、内容入侵和状态栏深色字体;兼容竖屏、横屏,当屏幕旋转时会自动适配。

Sofia

Android状态栏与导航栏一体化项目,实现沉浸式效果,状态栏和导航栏均支持设置颜色、渐变色、图片、透明度、内容入侵和状态栏深色字体;兼容竖屏、横屏,当屏幕旋转时会自动适配。

Sofia一词源自于希腊语∑οφία,含义为智慧,译为中文应该可以叫做索菲亚,这也是我赋予这个项目的愿望。

QQ技术交流群:46505645

截图


  • 图一:状态栏和导航栏用图片作为背景。
  • 图二:状态栏和导航栏随着Content的滑动逐渐变色。
  • 图三:内容侵入状态栏,比如产品详情页。
  • 图四:状态栏底色白色,字体深色(大概是灰黑色)。
  • 图五:和DrawerLayout结合使用。
  • 图六:和Fragment结合使用。

下载

在Gradle中添加依赖:

implementation 'com.yanzhenjie:sofia:1.0.5'

开发者也可以使用其它版本

Api

这里例如所有的Api,调用时结合具体的场景调用某几个方法即可,也可以一个都不调用,具体请参考Sample。
通用的用法是:

Sofia.with(Activity)
    ...;

调用with方法后返回一个Bar接口,可以链式连续调用所有方法,方法列表如下:

// 状态栏深色字体。
Bar statusBarDarkFont();

// 状态栏浅色字体。
Bar statusBarLightFont();

// 状态栏背景色。
Bar statusBarBackground(int statusBarColor);

// 状态栏背景Drawable。
Bar statusBarBackground(Drawable drawable);

// 状态栏背景透明度。
Bar statusBarBackgroundAlpha(int alpha);

// 导航栏背景色。
Bar navigationBarBackground(int navigationBarColor);

// 导航栏背景Drawable。
Bar navigationBarBackground(Drawable drawable);

// 导航栏背景透明度。
Bar navigationBarBackgroundAlpha(int alpha);

// 内容入侵状态栏。
Bar invasionStatusBar();

// 内容入侵导航栏。
Bar invasionNavigationBar();

// 让某一个View考虑状态栏的高度,显示在适当的位置,接受ViewId。
Bar fitsStatusBarView(int viewId);

// 让某一个View考虑状态栏的高度,显示在适当的位置,接受View。
Bar fitsStatusBarView(View view);

// 让某一个View考虑导航栏的高度,显示在适当的位置,接受ViewId。
Bar fitsNavigationBarView(View view);

// 让某一个View考虑导航栏的高度,显示在适当的位置,接受View。
Bar fitsNavigationBarView(View view);

fitsStatusBarView()一般用在产品详情页,假设需求如图三所示。在内容入侵状态栏后,我们的布局整体上移到状态栏,那么Toolbar的一部分也会显示在状态栏下方(层级),这个时候就需要Toolbar考虑系统状态栏的高度显示在适当的位置了;fitsNavigationBarView()同理,只是显示在屏幕的最底部(竖屏)或者最右侧(横屏)。

注意Sofia.with(Activity)调用后会返回一个Bar接口实例,开发者可以连续调用某几个方法。在页面滑动时如果需要再次改变SystemBar的颜色,那么开发者可以保存这个Bar实例为Activity的成员变量,也可以不保存,在重复改变时再次调用Sofia.with(Activity),此时还是会返回上次返回给开发者的Bar接口实例。

License

Copyright 2017 Yan Zhenjie

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

More Repositories

1

AndPermission

🍓 Permissions manager for Android platform.
Java
6,616
star
2

SwipeRecyclerView

🍈 RecyclerView侧滑菜单,Item拖拽,滑动删除Item,自动加载更多,HeaderView,FooterView,Item分组黏贴。
Java
5,570
star
3

NoHttp

🍋 Android实现Http标准协议框架,支持多种缓存模式,底层可动态切换OkHttp、URLConnection。
Java
3,705
star
4

AndServer

🍒 Web server and web framework of Android platform.
Java
3,626
star
5

Album

🍉 Album and Gallery for Android platform.
Java
2,501
star
6

Kalle

🍎 Http client for Android platform.
Java
586
star
7

CircleTextProgressbar

自定义圆形进度条 自定义倒计时进度条。继承自Textview,可以顺序旋转,可以倒叙旋转,可以设置进度条颜色,填充颜色,可以设置进度条宽度,可以设置填充颜色点击效果,文字点击效果。
Java
304
star
8

NoFragment

Fragment的封装,启动Fragment只需要调用startFragment(XXFragment.class);
Java
171
star
9

AddressChecker

✔️ MD风格的地址选择器,MD风格的城市选择器,Android就不要按照iOS风格来设计啦!
Java
109
star
10

GradleToMaven

简化发布Java、Android项目发布到MavenCentral。
44
star
11

mvp-sample

一个简单的MVP示例,和传统不一样的是,我们把Activity/Fragment作为Presenter,把View单独提出来,扩展了Presenter的能力。
Java
40
star
12

MediaScanner

MediaScannerConnection and MediaScannerConnectionClient.
Java
28
star
13

CompatAlertDialog

Java
27
star
14

LoadMore

ListView,GridView加载更多,GridView添加HeaderView和FooterView。
Java
19
star
15

Loading

LoadingView and LoadingDialog.
Java
16
star
16

yanzhenjie.github.io

Profile page of Zhenjie Yan.
HTML
15
star
17

FormatStringToJava

Any string formatted into a java String or a StringBuffer.
Java
14
star
18

HttpImpl

Java
11
star
19

AndroidWheel

Android Wheel View. I just fork it and continue to maintain it, this is not my credit, I pay tribute to the predecessors.
Java
7
star
20

Years

Just select the year and month view on Android.
Java
6
star
21

KalleServer

A simple http test api server.
Java
6
star
22

Icons-for-macOS-Big-Sur

App and folder icons that fit macOS Big Sur style.
JavaScript
3
star