5.0的状态栏为什么还是emui5.0沉浸式状态栏不了

无论何时,请保持学者的谦逊与宽容
沉浸式状态栏,其实真的没什么
很多人在做侧滑布局的时候,会遇到主界面与侧滑菜单的状态栏共用了一个,看起来特别的丑,比如:
这图片是在鸿洋那里搞来的。。。。。
侧滑的时候布局的状态栏是什么鬼,能不能像qq那样,我不要那么丑的还顶在上面
我要这个样子的
这个是在4.4.2上面的效果,5.0以上状态栏会有一层黑透明的效果,但是似乎没上面的那种古怪影响。
比如这样:
好了,介绍结束了,我来说说如何实现qq这种的状态栏的效果。
我们在沉浸式状态栏的时候会遇到
android:fitsSystemWindows=”true”这个东东,这个东东放在API19的xml的跟布局的时候就会失去沉浸的效果,状态栏上面会是黑的,在5.0以上的话,状态栏只是更改了颜色,并不是跟随布局,也就是跟布局没关系,就变成图1的那种样子了,所以,我们在做API19以上的时候,尽量不要添加这个东东。
实现步骤:
①、取消所有跟布局的android:fitsSystemWindows="true"
②、判断当前版本,如果大于等于API19的话,就隐藏状态栏
③、但是状态栏必须得要啊,你看别人上面都有状态栏的
④、不然,你布局不都顶在上面去了吗?那都是别人忽悠你的
⑤、我们来模仿一个状态栏啊,不过得先隐藏我们的状态栏
⑥、然后给我们的顶部布局增加一个paddingTop
⑦、这个Top值我们去拿到状态栏的高度然后设置,不就安安稳稳的出来了吗
⑧、接下来看我的工具代码,只需将你的Title布局传进去就行了,一般放的都是Toolbar
⑨、我尝试了一下在布局中引入&include&的layout布局,布局是自定义的标题栏,然后在Activity中inflater拿到布局,将这个返回View传进状态栏的时候设置paddingTop,似乎不行,布局设置的是Relative的centerInParent为true,设置paddingTop值的时候,布局都是居中的,padding似乎没效果,大家可以试试,不过对于那些Widght控件,比如toolbar,TabLayout啥的,都没影响,下面贴工具代码,上面有注释,自己理解理解,不难
隐藏状态栏
有两种方式:
①、在代码中设置
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);这个得持有Activity的引用,不过要是每次都这么去设置的话,我还要在主界面去判断当前的版本,然后再去设置,代码量重复的太多了,不喜欢。
②、在当前主题的style里面设置
name=”android:windowTranslucentStatus”为true的话就有意思了,你要是直接在values的style.xml中的主题里面设置当前的状态栏为无,gradle会提示你,当前的最小版本不能低于19,哈哈,这样是低于19的话,下面的用户怎么用?不要急,我们创建一个名字为value-v19的文件夹,然后复制一份style.xml文件进去,然后我们在主题样式里面设置这段代码就行了,这样设置的话,当API小于19的时候回去默认的value文件夹里面的style.xml找,当大于等于API19的话就会去value-v19的文件夹里面找style.xml
value文件夹下面的style.xml
value-v19文件夹下面的style.xml
StatusUtils.java
import android.content.C
import android.os.B
import android.view.V
* Created by wangqi on .
public class StatusUtils {
public static void initStatus(View view, Context context) {
if (Build.VERSION.SDK_INT &= Build.VERSION_CODES.KITKAT) {
view.getLayoutParams().height = getAppBarHeight(context);
view.setPadding(view.getPaddingLeft(),
getStatusBarHeight(context),
view.getPaddingRight(),
view.getPaddingBottom());
private static int getAppBarHeight(Context context) {
return dip2px(context, 56) + getStatusBarHeight(context);
private static int getStatusBarHeight(Context context) {
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId & 0) {
result = context.getResources().getDimensionPixelSize(resourceId);
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().
return (int) (dipValue * scale + 0.5f);
上面的工具类可以直接复制下来直接用,然后将需要设置的View传递给他,Activity和Fragment都可以用
下面是5.0效果的
这个布局是Fragment,我给TabLayout设置了一下,效果就是这样的,在5.0以上,隐藏状态栏的时候就会有一层透明的黑罩。
附上鸿洋6群里最骚的表情包
没有更多推荐了,润滑油, 积分 1096, 距离下一级还需 904 积分
润滑油, 积分 1096, 距离下一级还需 904 积分
润滑油, 积分 1096, 距离下一级还需 904 积分
主题 : 7|帖子 : 442|积分 : 1096
该用户从未签到
氢os状态栏系统应用有的完美沉浸
temp1.jpg (61.66 KB, 下载次数: 103)
22:51 上传
有的且不完美
temp1.jpg (114.77 KB, 下载次数: 94)
22:51 上传
而第三方应用也是一样
temp1.jpg (156.28 KB, 下载次数: 108)
22:53 上传
temp1.jpg (152.12 KB, 下载次数: 111)
22:53 上传
看看国内别人家的5.0系统,但凡是支持沉浸状态栏的软件都完美沉浸了{:5_108:},不像氢os有些全透明,有些半透明,界面完全不统一,做的四不像,看起来就比较混乱。
其实氢OS作为一个新生的系统,要求本就不应该太高,只是觉得这样的细节往往决定了官方人员对其的态度,我不要求太多功能,但我要求绝对自己能够做的就要做到最好{:6_fdo:}。绝对不将就不妥协。
PS:氢OS加油
---来自一加社区手机客户端
<p id="rate_641" onmouseover="showTip(this)" tip="很给力!&加油 + 1
93#汽油, 积分 13106, 距离下一级还需 6894 积分
93#汽油, 积分 13106, 距离下一级还需 6894 积分
93#汽油, 积分 13106, 距离下一级还需 6894 积分
主题 : 96|帖子 : 3089|积分 : 13106
该用户从未签到
赞同楼主的说法
---来自一加社区手机客户端
93#汽油, 积分 11875, 距离下一级还需 8125 积分
93#汽油, 积分 11875, 距离下一级还需 8125 积分
93#汽油, 积分 11875, 距离下一级还需 8125 积分
主题 : 15|帖子 : 3825|积分 : 11875
该用户从未签到
界面统一比较好
---来自一加社区手机客户端
润滑油, 积分 1994, 距离下一级还需 6 积分
润滑油, 积分 1994, 距离下一级还需 6 积分
润滑油, 积分 1994, 距离下一级还需 6 积分
主题 : 12|帖子 : 495|积分 : 1994
该用户从未签到
5.0对状态栏透明有一个强制的在状态栏那里加了一层遮罩,所以在4.4颜色一样的的在5.0状态栏那里就会暗下来,比如QQ。不过,有的APP针对5.0的情况也做了特别适配,比如网易云音乐就很完美
一加为了去掉遮罩应该是在有些地方用了加亮度还是什么的办法,但是上划的控制中心又是降低其他界面的亮度就会这样
---来自一加社区手机客户端
润滑油, 积分 1994, 距离下一级还需 6 积分
润滑油, 积分 1994, 距离下一级还需 6 积分
润滑油, 积分 1994, 距离下一级还需 6 积分
主题 : 12|帖子 : 495|积分 : 1994
该用户从未签到
还有这叫做透明。
状态栏和虚拟键都没有的全屏模式才叫做沉浸
---来自一加社区手机客户端
煤油, 积分 4575, 距离下一级还需 425 积分
煤油, 积分 4575, 距离下一级还需 425 积分
煤油, 积分 4575, 距离下一级还需 425 积分
主题 : 31|帖子 : 858|积分 : 4575
该用户从未签到
楼主你懂不懂安卓5.0
---来自一加社区手机客户端
93#汽油, 积分 12814, 距离下一级还需 7186 积分
93#汽油, 积分 12814, 距离下一级还需 7186 积分
93#汽油, 积分 12814, 距离下一级还需 7186 积分
主题 : 132|帖子 : 1962|积分 : 12814
该用户从未签到
因为扣扣用的不是安卓的md设计出来的应用。
---来自一加社区手机客户端
煤油, 积分 4182, 距离下一级还需 818 积分
煤油, 积分 4182, 距离下一级还需 818 积分
煤油, 积分 4182, 距离下一级还需 818 积分
主题 : 87|帖子 : 1357|积分 : 4182
该用户从未签到
Material Design笑而不语
柴油, 积分 5324, 距离下一级还需 4676 积分
柴油, 积分 5324, 距离下一级还需 4676 积分
柴油, 积分 5324, 距离下一级还需 4676 积分
主题 : 23|帖子 : 1939|积分 : 5324
该用户从未签到
不喜欢沉浸
---来自一加社区手机客户端
勾兑油, 积分 820, 距离下一级还需 180 积分
勾兑油, 积分 820, 距离下一级还需 180 积分
勾兑油, 积分 820, 距离下一级还需 180 积分
主题 : 15|帖子 : 340|积分 : 820
该用户从未签到
5.0对状态栏透明有一个强制的在状态栏那里加了一层遮罩,所以在4.4颜色一样的的在5.0状态栏那里就会暗下来 ...
正解,就是这样
煤油, 积分 4656, 距离下一级还需 344 积分
煤油, 积分 4656, 距离下一级还需 344 积分
煤油, 积分 4656, 距离下一级还需 344 积分
主题 : 15|帖子 : 1503|积分 : 4656
该用户从未签到
赞同楼主的说法
95#汽油, 积分 32853, 距离下一级还需 17147 积分
95#汽油, 积分 32853, 距离下一级还需 17147 积分
95#汽油, 积分 32853, 距离下一级还需 17147 积分
主题 : 295|帖子 : 13040|积分 : 32853
该用户从未签到
沉浸式,透明状态栏
---来自一加社区手机客户端
煤油, 积分 2948, 距离下一级还需 2052 积分
煤油, 积分 2948, 距离下一级还需 2052 积分
煤油, 积分 2948, 距离下一级还需 2052 积分
主题 : 103|帖子 : 825|积分 : 2948
该用户从未签到
楼主连Material Design都不懂,还在那逼逼,在安卓上做沉浸冒充ios你应该去用miui
正统的安卓5.0Material Design,不是你所谓的那种沉浸
一个脱离了高级趣味的人。
润滑油, 积分 1096, 距离下一级还需 904 积分
润滑油, 积分 1096, 距离下一级还需 904 积分
润滑油, 积分 1096, 距离下一级还需 904 积分
主题 : 7|帖子 : 442|积分 : 1096
该用户从未签到
saikm 发表于
楼主连Material Design都不懂,还在那逼逼,在安卓上做沉浸冒充ios你应该去用miui
正统的安卓5.0Material&&...
我的意思是氢os系统应用做了类似iOS一样全透明,但是第三方又是MD风格,官方要么把系统应用改成MD风格的,要么像其它ROM一样全部应用都是全透明
润滑油, 积分 1096, 距离下一级还需 904 积分
润滑油, 积分 1096, 距离下一级还需 904 积分
润滑油, 积分 1096, 距离下一级还需 904 积分
主题 : 7|帖子 : 442|积分 : 1096
该用户从未签到
激动的五毛 发表于
<font color="#.0对状态栏透明有一个强制的在状态栏那里加了一层遮罩,所以在4.4颜色一样的的在5.0状态栏那里就会暗下来 ...
flyme也是5.0相信大家都体验过了,状态栏也不是MD的,照样做了全透明。
一周年 纪念勋章
一加一周年纪念勋章
在线小达人
社区上线100天纪念勋章
一加手机1勋章
元旦纪念勋章
马年纪念勋章 马上啥都有
羊年纪念勋章
一加手机2勋章
一加手机X勋章
圣诞节 勋章
圣诞节专属勋章
猴年纪念勋章 猴年猴赛雷
猴年特殊勋章
庆祝 一加手机6板块开版
2018狗年勋章
OnePlus 3T
一加手机3T勋章
植树节 勋章
植树节纪念勋章
我是加油GG
祝加油GG男生节快乐
元宵节 纪念勋章
祝加油们元宵节快乐!
鸡年纪念勋章
我是加油MM
祝加油MM女生节快乐
我是零点控
零点控勋章 只为感谢而来
深圳市万普拉斯科技有限公司 版权所有(如果文章对您有帮助,请随意打赏支持!EMUI5.0导航栏好像沉浸了。【华为荣耀8吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:68,549贴子:
EMUI5.0导航栏好像沉浸了。收藏
沉浸啥意思
期待,希望emiui越来越好!!!!!
嗯,可以了。root后刷包也有沉浸功能
不是说5.0虚拟键变了么
虚拟键要是也沉浸就无敌了
还没升级么
什么时候有。?
虚拟键最好透明
个性,开放,互联.欧洲技术,欧洲设计,全球制造,全球销售的高端汽车品牌LYNK & CO.将为中国消费者提供高标准的无忧购车,无忧用车的超值体验!
后台任务也改成原生的样式了
要明年更新?
估计只有自家应用才可以,其他的不行
也就是自带的APP
不是好像,确实是,基本常用的都沉浸了
第三方没有沉浸 状态栏也不沉浸了
改为安卓原生半沉浸半阴影
我不知道你们的怎么样,反正我的基本上没有沉浸,主题功能也用不了,不知道是不是因为我刷的包不对
楼主 这个需不需要更新呀
什么时候能全面推送5.0啊,真心期待
希望虚拟键能沉浸
现在app只有bilibli沉浸
171都是沉浸了
什么时候有5.0
是的啊!做的不错
难道我和你们用的不是一个手机?
鸡巴毛,用了5.0五个多月没看见沉浸
QQ状态栏还不沉浸呢
我擦。楼主用过5.0么
登录百度帐号偶然在知乎上看到这个问题,,之前也见过多个应用的这个功能,但是知乎上的答案却没有一个真正实现此功能的一类是把标题栏设置App主题颜色,一类是提取App主题颜色然后设置成状态栏的颜色,这两种方法都只是设置了状态栏的背景色,而没有实现布局延伸到状态栏这个功能
下面是综合网上的一些东西整理的,废话不说,看代码 1 public class MainActivity extends Activity {
@SuppressLint("InlinedApi")
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
if(VERSION.SDK_INT &= VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
window.setNavigationBarColor(Color.TRANSPARENT);
setContentView(R.layout.activity_main);
1, 第一次见到InlinedApi这个注解,网上给出的解释是
"InlinedApi": Finds inlined fields that may or may not work on older platforms
大致意思是低版本的SDK可能不会起作用,这个可以不用管
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.clearFlags 源码:
public void clearFlags(int flags) {
setFlags(0, flags);}FLAG_TRANSLUCENT_STATUS //透明状态栏FLAG_TRANSLUCENT_NAVIGATION //透明导航栏
3, setSystemUiVisibility这个方法参数表示的状态比较多,具体如下:
1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)。
2. View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。
3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。
4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。
5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。
8. View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。4,window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
Flag表明这个窗口负责绘制系统状态栏标题栏的背景。如果设置,系统bar绘制成透明背景,在这个窗口相应的地方会填充{@link Window#getStatusBarColor()}和{@link Window#getNavigationBarColor()}对应的颜色。
阅读(...) 评论()

我要回帖

更多关于 三星s8顶部状态栏沉浸 的文章

 

随机推荐