Android UI Libs之Android-ObservableScrollView

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容