沉浸式状态栏——简洁实用

前言

前段时间在做项目的时候用到了沉浸式状态栏,在网上看了很多很多方法,有什么重写Style样式表的种种,今天来个总结。
——————————————————————————————————————————
首先呢,说一种全局式的,如图
在这里插入图片描述

Java代码:(注意,要写在项目的BaseActivity里,紧挨着super.onCreate(savedInstanceState);)
getWindow().requestFeature(Window.FEATURE_NO_TITLE); if
(Build.VERSION.SDK_INT >= Build.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); //设置导航栏颜色透明 }

如果觉得这种方法不太适合你的需求的话,可以在你MainActivity所对应的布局中加这样一行代码

给状态栏留空地 android:fitsSystemWindows=“true”

第二种,直接给状态栏设置颜色

java代码

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window
window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(activity.getResources().getColor(colorResId));
//底部导航栏
//window.setNavigationBarColor(activity.getResources().getColor(colorResId));
}

style文件——直接在主题文件中设置这几个属性,AndroidStudio项目中自动生成

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">    
  <!-- Customize your theme here. -->    
  <item name="colorPrimary">@color/colorPrimary</item>    
  <item name="colorPrimaryDark">@color/colorPrimaryDark</item>    
  <item name="colorAccent">@color/colorAccent</item>
</style>
当你把colorPrimary和colorPrimaryDark两个值的颜色设置成相同就行
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值