简介
Android-ObservableScrollView实现监听scrollview滚动,对状态栏进行显示或隐藏,建议运行程序看下效果。 GitHub网址:https://github.com/ksoichiro/Android-ObservableScrollView Gradle配置:
compile 'com.github.ksoichiro:android-observablescrollview:1.6.0'
示例:向下滑动ObservableListView,上面的标题栏隐藏,向上滑动,标题栏显示出来,结果如下图所示:
标题栏隐藏效果
标题栏显示效果
第一步:在主布局文件中加入ObservableListView,代码如下所示:
<com.github.ksoichiro.android.observablescrollview.ObservableListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.github.ksoichiro.android.observablescrollview.ObservableListView>
第二步:修改MainActivity的代码如下所示:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ObservableListView listView = (ObservableListView) findViewById(R.id.list_view);
ArrayList<String> items = new ArrayList<String>();
for (int i = 1; i <= 50; i++) {
items.add("数据 " + i);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, items);
listView.setAdapter(adapter); //为listview设置滚动回调观察者
listView.setScrollViewCallbacks(listener);
}
ObservableScrollViewCallbacks listener = new ObservableScrollViewCallbacks() {
@Override
public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) {
}
@Override
public void onDownMotionEvent() {
}
@Override
public void onUpOrCancelMotionEvent(ScrollState scrollState) {
ActionBar actionBar = getSupportActionBar();
if (scrollState == ScrollState.UP) {
if (actionBar.isShowing())
actionBar.hide();
} else if (scrollState == ScrollState.DOWN) {
if (!actionBar.isShowing())
actionBar.show();
}
}
};
}