如何监听CollapsingToolbarLayout的展开与折叠
来源:互联网 发布:python arima 编辑:程序博客网 时间:2024/05/22 00:16
这个问题参考的是stackoverflow上的一个提问 。在这里我把最佳答案提出来就是了。
使用官方提供的 AppBarLayout.OnOffsetChangedListener就能实现了,不过要封装一下才好用。
自定义一个继承了 AppBarLayout.OnOffsetChangedListener的类,这里命名为AppBarStateChangeListener:
public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener { public enum State { EXPANDED, COLLAPSED, IDLE } private State mCurrentState = State.IDLE; @Override public final void onOffsetChanged(AppBarLayout appBarLayout, int i) { if (i == 0) { if (mCurrentState != State.EXPANDED) { onStateChanged(appBarLayout, State.EXPANDED); } mCurrentState = State.EXPANDED; } else if (Math.abs(i) >= appBarLayout.getTotalScrollRange()) { if (mCurrentState != State.COLLAPSED) { onStateChanged(appBarLayout, State.COLLAPSED); } mCurrentState = State.COLLAPSED; } else { if (mCurrentState != State.IDLE) { onStateChanged(appBarLayout, State.IDLE); } mCurrentState = State.IDLE; } } public abstract void onStateChanged(AppBarLayout appBarLayout, State state);}
然后这样使用它:
mAppBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() { @Override public void onStateChanged(AppBarLayout appBarLayout, State state) { Log.d("STATE", state.name()); if( state == State.EXPANDED ) { //展开状态 }else if(state == State.COLLAPSED){ //折叠状态 }else { //中间状态 } } });
阅读全文
0 0
- 如何监听CollapsingToolbarLayout的展开与折叠
- 如何监听CollapsingToolbarLayout的展开与折叠
- 如何监听CollapsingToolbarLayout的展开与折叠
- CollapsingToolbarLayout展开与收回监听
- CollapsingToolbarLayout的使用及折叠事件监听
- UITableView的折叠与展开
- 关于CoordinatorLayout包含CollapsingToolbarLayout和NestedScrollView展开与折叠相关属性
- 脚本控制Select的展开与折叠
- Axure折叠与展开效果的实现
- jquery内容的展开与折叠
- jquery实现内容的折叠与展开
- 使用CollapsingToolbarLayout实现可展开与收缩的导航栏
- 展开与折叠菜单栏
- UITableViewCell 折叠与展开
- ASPxNavBar的折叠展开
- CoordinatorLayout:CollapsingToolbarLayout折叠效果的布局容器
- CollapsingToolbarLayout使用(可以折叠的Toolbar)
- 层次结构与展开/折叠
- 高清时代4K H.265/HEVC来临---OTT/IPTV直播系统大发展
- Redis的安装与使用(单节点)
- 近一个月的面试总结_Java岗
- Perl 替换字符串应用
- 超分辨率(super-resolution)VS解模糊(deblur)
- 如何监听CollapsingToolbarLayout的展开与折叠
- 微信公众平台 获取access_token
- CSS3 动画
- LeetCode@513_Find_Bottom_Left_Tree_Value
- ArrayList底层原理以及使用技巧
- Mac Security工具使用总结find-identity
- js回调函数的理解及简单实例
- 建造者模式学习记录
- 2.2 放大器的基本分析方法