Android UI Libs之Android-ObservableScrollView
1. 说明
Android-ObservableScrollView,顾名思义,Android上观察滚动的视图,可以监听滚动视图的滚动状态。它可以很简单地与Toolbar进行交互,并且很方便地创建Material Design的app。
2. 配置
在模块的build.gradle中添加依赖:compile 'com.github.ksoichiro:android-observablescrollview:1.5.0'
3. 基本使用
Android-ObservableScrollView提供一些可以观察滚动事件的滚动视图:
-
ObservableGridView
:扩展自GridView
-
ObservableListView
:扩展自ListView
-
ObservableRecyclerView
:扩展自RecyclerView
-
ObservableScrollView
:扩展自ScrollView
-
ObservableWebView
:扩展自WebView
我以ObservableListView
来说明其基本使用方法:
在xml中定义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>
在java文件中对ObservableListView
的相关操作:
this.listview = (ObservableListView) findViewById(R.id.list_view);
ArrayList<String> items = new ArrayList<String>();
for (int i = 1; i <= 100; i++) {
items.add("数据 " + i);
}
//为listview设置Adapter
listview.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));
//为listview设置滚动回调观察者
listview.setScrollViewCallbacks(this);
所在Activity实现了ObservableScrollViewCallbacks
接口,并覆盖该接口中的所有方法:
/**
* 滚动时
* @param scrollY
* @param firstScroll
* @param dragging
*/
@Override
public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) {
Log.i("onScrollChanged","Y轴的坐标:"+scrollY);
}
/**
* 按下时
*/
@Override
public void onDownMotionEvent() {
}
/**
* 拖曳结束或者取消时
* @param scrollState
*/
@Override
public void onUpOrCancelMotionEvent(ScrollState scrollState) {
if(scrollState==ScrollState.DOWN){
Log.i("onUpOrCancelMotionEvent","向下滚动");
}else if(scrollState==ScrollState.UP){
Log.i("onUpOrCancelMotionEvent","向上滚动");
}else {
Log.i("onUpOrCancelMotionEvent","停止滚动");
}
}
即使调用了listview.setScrollViewCallbacks(this)
方法,listview还可以调用listview.setOnScrollListener()
,它们会同时起作用。
Android-ObservableScrollView还给出了很多交互的Activity。
程序源代码下载,我的github仓库:UILibs