煎蛋是这个样子的:
下来隐藏actionbar是个很好的用户体验,特别是对于使用屏幕比较小的用户,下面我们自己来做这个功能。伟大的开源已经帮我们提供了这样的方法,我们只要站在巨人的肩膀上开发就可以了,这里我们引用的是 Android-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) {
}
}
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上的教程做的,效果如下:
代码请点击 下载