博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
干货分享:Android沉浸式状态栏 + scrollView顶部伸缩 + actionBar渐变
阅读量:2261 次
发布时间:2019-05-09

本文共 692 字,大约阅读时间需要 2 分钟。

最近需求要做一个拉缩渐变的状态栏,往上拉的时候,需要显示actionBar,这个过程是渐变的,顶部的图片背景能实现拉缩,并且还要实现状态栏沉浸式

效果如如下:

  • 实现状态栏的透明化
  • 实现ScrollView的拉缩
  • 实现ActionBar的渐变

实现

1、至于试下实现ScrollView的拉缩这个效果很简单重写onTouchEvent方法,利用滑动的垂直方向的距离,然后在设置图片的大小

这里要注意的是:在手指释放的时候需要进行恢复图片的高度

 

2、ActionBar的透明度很简单了,在onScrollChanged里进行操作即可

 

 

3、至于沉浸式状态栏就很简单了

这里我简单的封装了一些工具类

 

 

在相应的Activity或基类执行这段代码就ok了。

可见在4.4到5.0的系统、5.0及以上系统的处理方式有所不同

除了这种代码修改额方式外,还可以通过主题来修改,需要在values、values-v19、values-v21目录下分别创建相应的主题:

 

给相应Activity或Application设置该主题就ok了。

两种方式根据需求选择就好了,到这里我们就完成了第一步,将状态栏透明化了。

完成了第一步,我们开始给状态栏加上想要的色彩吧!

在values、values-v19目录添加如下尺寸:

 

关于25dp,在有些系统上可能有误差,这里不做讨论!

 

2.1 页面顶部使用Toolbar(或自定义title) 一般情况状态栏的颜色和Toolbar的颜色相同,既然状态栏透明化后,布局页面延伸到了状态栏,何不给Toolbar加上一个状态栏高度的顶部padding呢:

效果图下:

 

 

0人点赞

 

 

转载地址:http://hffcb.baihongyu.com/

你可能感兴趣的文章
如何将当前更改提交到git中的不同分支[重复]
查看>>
如何使git接受自签名证书?
查看>>
如何以类似JSON的格式打印圆形结构?
查看>>
使用HTML5的自定义数据属性的jQuery选择器
查看>>
xcode选择活动的开发人员目录错误
查看>>
如何使用包含属性名称的变量检查对象属性是否存在?
查看>>
是否可以将Java 8用于Android开发?
查看>>
Akka的好用例[关闭]
查看>>
如何右对齐弹性项目?
查看>>
Xcode 6 Bug:Interface Builder文件中的未知类
查看>>
Java中的getPath(),getAbsolutePath()和getCanonicalPath()有什么区别?
查看>>
如何在JavaScript / jQuery中查找数组是否包含特定字符串? [重复]
查看>>
错误时自动退出bash shell脚本[重复]
查看>>
如何使用Twitter Bootstrap获得中心内容?
查看>>
为什么('b'+'a'+ +'a'+'a')。toLowerCase()'banana'的结果?
查看>>
在函数调用中,星号运算符是什么意思? [重复]
查看>>
将整个ASCII文件读入C ++ std :: string [重复]
查看>>
了解React.js中数组子项的唯一键
查看>>
我应该使用<i>标签代替<span>吗? [关闭]
查看>>
如何在bash脚本中提示用户进行确认? [重复]
查看>>