Android大坑之沉浸式StatusBar+actionbar

在开发中,我们经常遇到, 想让Statusbar透明,其中的效果相比大家也都知道, 但这里面的坑太多了啊……. 今天就来总结一下他的各种方法.

1.Status的消失

因为状态栏是在4.4加入的,所以我们在Android4.4以下是没有Statusbar的. 我们做适配也是在这两个系统上做

当状态栏需要设置一个单纯的颜色时:
- 4.4:设置android:windowTranslucateStatus属性,并且手动添加一个和状态栏高度等高的View。
- 5.0及以上:不设置android:windowTranslucateStatus属性,直接设置statusBarColor的色值。
当状态栏需要要在一个图片上透明时
- 4.4:直接设置android:windowTranslucateStatus属性。
- 5.0:不设置,同时设置状态栏颜色透明,并使用另一个属性。

这是在其他地方找到的一个解决的方法, 但是好像我试的还是不行..
http://www.jianshu.com/p/2539ccf2f3dd

2. 如掉ActionBar的方法

1. 可以在styles中自定义新的主题
<style name="SlapshTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="android:windowNoTitle">true</item>
</style>
之后再清单文件中引用即可
  1. java代码中
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

3. 全屏的方法:

1.如果实在API 13 以上

android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
  1. 在代码中使用
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
  1. requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 尽量不要在setContentView(R.layout.activity_text);之前加这代码,因为setContentView(R.layout.activity_text);在加载布局时会去找ActionBar, 有时候会不显示效果.
  2. 在清单文件中
<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>

5. 动态全屏变到非全屏

这是从网上无意间看到的, 具体我也没怎么去试下…

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值