[MD][仿煎蛋]observablescrollview下拉隐藏actionbar

煎蛋是这个样子的:


下来隐藏actionbar是个很好的用户体验,特别是对于使用屏幕比较小的用户,下面我们自己来做这个功能。伟大的开源已经帮我们提供了这样的方法,我们只要站在巨人的肩膀上开发就可以了,这里我们引用的是 ksoichiroAndroid-ObservableScrollView 

我们只引用开源工程中的几个文件


然后在activity_main.xml中添加 observablescrollview

<com.github.ksoichiro.android.observablescrollview.ObservableScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">
在MainActivity.java中setView

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
让MainActivity添加 ObservableScrollViewCallbacks接口

public class MainActivity extends AppCompatActivity 
implements ObservableScrollViewCallbacks 
并且实现下面三个与动作相关的回调函数
 @Override
  public void onScrollChanged(int scrollY, boolean firstScroll,
    boolean dragging) {
  }
  @Override
  public void onDownMotionEvent() {
  }
  @Override
  public void onUpOrCancelMotionEvent(ScrollState scrollState) {
  }
}


重点来了,在 onUpOrCancelMotionEvent 中实现 actionbar的显示和隐藏

public void onUpOrCancelMotionEvent(ScrollState scrollState) {
        ActionBar ab = getSupportActionBar();
        if (scrollState == ScrollState.UP) {
            if (ab.isShowing()) {
                ab.hide();
            }
        } else if (scrollState == ScrollState.DOWN) {
            if (!ab.isShowing()) {
                ab.show();
            }
        }
最终效果如下:



完整的源码 积分下载

同时,我也附上listview+observableScrollView的一个demo,这个基本上是按照git上的教程做的,效果如下:


代码请点击 下载


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值