自己写类似coordinatorlayout的实现效果,解决一些coordinatorlayout不能满足的要求
来源:互联网 发布:淘宝只能用花呗分期吗 编辑:程序博客网 时间:2024/06/10 07:35
我的文章是基于这位大哥的博客基础上修改的,他的博客写的很好。为了表示对他的感激和敬佩之情,我的把原地址传达给大家:
http://blog.csdn.net/oushangfeng123/article/details/47326511
我遇到的问题正如上面链接文章里说的第3条一样,我需要点击某个操作(不是滑动)让隐藏的AppBarLayout显示出来,折腾了很久发现使用官方的CoordinatorLayout
很难做到这一点(目前本人是没有研究出来,自定义Behavior也是需要某个控件移动才能让AppbarLayout跟着移动,而我这个场景是没有移动事件的)。
大家可以先下一下上面文章里最后给的代码,运行看看,效果已经很不错了。就是有一点还没有做到位,就是评论里人们说的 :
“逻辑一样,可是,就是滚动的时候,不会隐藏。”
我针对他的例子做了一点修改,修改如下
HomeSimpleFragment:
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); element.setAppBarOffset(dy); EventBus.getDefault().post(element, "scroollTabLayout"); } });
MainActivity:
@Subscriber(tag = "scroollTabLayout") private void scroollTabLayout(EventBusElement element) { if(element.getAppBarOffset()>0){ if((mAppBarLayout.getScrollY()+element.getAppBarOffset())<=mAppBarLayout.getHeight()){ mAppBarLayout.scrollBy(0, element.getAppBarOffset()); }else{ mAppBarLayout.scrollBy(0,mTabLayoutHeight-mAppBarLayout.getScrollY()); } }else if(element.getAppBarOffset()<0){ if((mAppBarLayout.getScrollY()+element.getAppBarOffset())>0){ mAppBarLayout.scrollBy(0, element.getAppBarOffset()); } else{ mAppBarLayout.scrollBy(0,-mAppBarLayout.getScrollY()); } } Log.i("scrollYoffset", element.getAppBarOffset() + ""); Log.i("scrollY", mAppBarLayout.getScrollY() + ""); Log.i("scrollYheight", mAppBarLayout.getHeight() + ""); }
运行效果图如下:
源码下载地址:https://github.com/tomyZhou/CustomedCoordinatorLayout
阅读全文
0 0
- 自己写类似coordinatorlayout的实现效果,解决一些coordinatorlayout不能满足的要求
- 自定义 LinearLayout 实现类似 CoordinatorLayout 的效果
- 创建自己的CoordinatorLayout实现
- CoordinatorLayout.Behavior自定义效果的实现
- CoordinatorLayout实现view的联动效果
- CoordinatorLayout实现优雅的炫酷效果
- 自定义ViewGroup可折叠控件,类似CoordinatorLayout的效果
- coordinatorLayout 的一个小效果
- 定义自己的CoorDinatorLayout(NestedScrollingParent)
- Material Design实现之 CoordinatorLayout的滚动效果
- CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar实现app的折叠效果
- CoordinatorLayout实现标题栏的隐藏
- CoordinatorLayout实现的一个小玩意儿
- CoordinatorLayout+ViewPager不能自动折叠的问题
- CoordinatorLayout:CollapsingToolbarLayout折叠效果的布局容器
- 关于CoordinatorLayout的一些使用经验
- 协调布局CoordinatorLayout的一些方法
- CoordinatorLayout 上的一些布局技巧
- JS中的try……catch……finally运行步骤
- VS2017 中文乱码
- PyQt基本布局常用方法之addStretch
- SpringBoot bean无法注入
- Vue 报错 listen EADDRINUSE :::8080
- 自己写类似coordinatorlayout的实现效果,解决一些coordinatorlayout不能满足的要求
- 数据结构(二):Java实现:链表实现增删查操作(具有头结点)
- IOS UITableview 刷新某一个cell 或 section
- spring cloud feign hystrix doesn't work
- 内核--任务调度--等待
- java算24点
- Merge(石子合并加强版)
- Lucene6入门教程(四)索引文件格式
- Python三大器之生成器