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