您的位置:首页 > 其它

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

2015-12-21 21:28 405 查看
煎蛋是这个样子的:



下来隐藏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上的教程做的,效果如下:



代码请点击
下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  observablescrollview