关于toolbar的沉浸式使用

       关于material design是谷歌2014年I/O大会推出的,过去两年才慢慢被开发者接受,最近也是看到很多app有很多酷炫效果,经过百般查询资料才对material design有了一个新的认识,现在话不多说我们进入主题,首先我们先来学习ToolBar,替换之前的ActionBar,相对于ActionBar它更加的灵活可以放在任何位置,现在我们来看看如何使用:

我们先来看看这个关系词:


第一种实现方法

1.首先你先去掉原来的actionbar


2.考虑到这是谷歌5.0才推出来的,为了给低版本(4.4以上做适配)


3.这时候你会发现整个toolbar这种情况


为了解决这个情况这个问题我们必须在toolbar里加入


#在真是开发中华为的手机底部一般都是使用的虚拟键,如果需要透明状态栏效果,底部导航栏不要设置透明,就是if里面的第二行代码(导航栏  底部)删除即可;

第二种方法:

更改样式方法:

第一步同样需要设置样式:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">  
  2.         <!-- Customize your theme here. -->  
  3.         <item name="colorPrimary">@color/transparence</item>              <!-- 状态栏 -->  
  4.         <item name="colorPrimaryDark">@color/transparence</item>          <!-- toolbar -->  
  5.         <item name="colorAccent">@color/colorAccent</item>                <!-- 常用控件默认背景色 -->  
  6.         <item name="android:windowTranslucentStatus">true</item>          <!-- 适用4.4到5.0的系统-->  
  7. </style>  
第二步同样是在清单文件中给activity设置theme即可:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <activity android:name=".MainActivity"  
  2.     android:theme="@style/BaseAppTheme"/>  


因为5.0支持的是变色状态栏,所以如果想兼容android5.0以上版本需要在activity的onCreate方法中加入以下代码:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {  
  2.     Window window = getWindow();  
  3.     window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);  
  4.     window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);  
  5.     window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);  
  6.     window.setStatusBarColor(Color.TRANSPARENT);  
  7. }  

以上是根据更改样式的方式实现透明状态栏效果



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值