滑动改变toolbar透明度
来源:互联网 发布:过期未注册域名查询 编辑:程序博客网 时间:2024/04/30 19:55
因为根据布局的滑动改变toolbar的透明度在各大app上都比较常见,而且最近公司项目也要这个效果,所以就去实现了一下,效果不错,所以就记录一下这个实现.
因为我用的布局是ScrollView,所以我想着在他的滑动监听里去实现,可突然发现它并没有现成的监听滑动的方法,但是有一个onScrollChanged方法,所以就自定义一个MyScrollView类,该类核心代码如下:
在他的onScrollChanged方法中实现代码如下:
//暴露接口
public void setmOnScrollChangedListener(OnScrollChangedListener mOnScrollChangedListener) { this.mOnScrollChangedListener = mOnScrollChangedListener;}
if(mOnScrollChangedListener !=null)
{
mOnScrollChangedListener.onScrollChanged(this,l,t,oldl,oldt);//自定义接口中的方法
}
public interface OnScrollChangedListener { void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt);}
在我的PurchaseDetailActivity中首先定义了两个全局变量,然后再如下方法中赋值
@Overridepublic void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); scrollView.scrollTo(0,0); headerHeight = getResources().getDimension(R.dimen.y500);//顶部高度 minHeaderHeight = getResources().getDimension(R.dimen.abc_action_bar_default_height_material);//顶部最低高度,即Bar的高度 toolbar.getBackground().mutate().setAlpha(0);}
在最核心的onScrollChanged方法中完成最后的监听
@Overridepublic void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) { //Y轴偏移量 float scrollY = who.getScrollY(); //Log.e("===onScrollChanged===","======="+scrollY); //变化率 float headerBarOffsetY = headerHeight - minHeaderHeight;//Toolbar与header高度的差值 //Toolbar背景色透明度 if (scrollY==0) { toolbar.getBackground().mutate().setAlpha(0); } else if (scrollY>0) { float offset = 1 - Math.max((headerBarOffsetY - scrollY) / headerBarOffsetY, 0f); toolbar.getBackground().mutate().setAlpha((int) (offset * 255)); } else { toolbar.getBackground().mutate().setAlpha(0); }}
罗辑不难,而且也挺好实现的.一开始是用材料设计,可结果发现和预期的效果不对,用过的人会知道用三大布局结合使用是达到了收缩的效果.
1 0
- 滑动改变toolbar透明度
- Android 滑动Toolbar透明度变化
- 列表滚动改变Toolbar透明度
- 滑动界面改变toolbar
- ScrollView向上滑动,改变菜单的透明度
- Toolbar随着ScrollView滑动透明度渐变效果实现
- Toolbar随着ScrollView滑动透明度渐变效果实现
- 通过拖动滑动块来改变图片透明度
- Android 滑动改变标题/栏导航栏颜色、透明度
- 滚动视图上滑动改变导航条颜色和透明度
- Android App的标题栏随ScrollView的滑动改变透明度
- iOS 上下滑动tableView导航透明度逐渐改变
- TransparentToolBar 一个简单随着滚动控件滚动,不断改变颜色透明度的ToolBar
- Android开发——seekBar滑动条滑动改变图片的透明度
- 随着手指滑动动态改变子控件位置、透明度、大小的实现方式
- Android ScrollView .顶部栏滑动透明度改变,底部栏滑到特定位置显示或隐藏效果
- 改变图片透明度
- 改变UIImage的透明度
- Lua 数据结构
- POJ1088 滑雪(动态规划+深搜DFS)
- android的Space控件使用方式
- lavarel框架学习之使用ajax提交表单方法详解
- JSPatch详解
- 滑动改变toolbar透明度
- Creating Custom Views
- redis 主从复制配置
- 最新win10镜像下载
- 使用WinSCP软件在windows和ubuntu中进行文件传输
- ReactiveCocoa详解
- 集合框架_TreeSet保证元素排序的源码解析
- 关于OF CF 标志位对于判定两整数大小关系(无符号数及有符号数情况)作用的讨论
- ORB算法原理解读