Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在listview上绑定多个滚动侦听器?_Android_Listview_Listener - Fatal编程技术网

Android 如何在listview上绑定多个滚动侦听器?

Android 如何在listview上绑定多个滚动侦听器?,android,listview,listener,Android,Listview,Listener,我想创建一个具有粘性部分标题和浮动操作按钮的listview 我为此使用了2个lib(StickyListHeaders和FloatingActionButton),但它们需要将滚动侦听器绑定到listview才能工作。问题是listview上只能有一个滚动侦听器 如何在listview上使用2个滚动侦听器?组合滚动侦听器列表,只让一个侦听器通知所有这些侦听器,对于您的请求来说是非常简单的解决方案 注意:如果您计划从MultiScrollListener覆盖OnScrollListener中的方

我想创建一个具有粘性部分标题和浮动操作按钮的listview

我为此使用了2个lib(StickyListHeaders和FloatingActionButton),但它们需要将滚动侦听器绑定到listview才能工作。问题是listview上只能有一个滚动侦听器


如何在listview上使用2个滚动侦听器?

组合滚动侦听器列表,只让一个侦听器通知所有这些侦听器,对于您的请求来说是非常简单的解决方案

注意:如果您计划从
MultiScrollListener
覆盖
OnScrollListener
中的方法,请确保进行
super
调用

import android.widget.AbsListView;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by nikola on 9/12/14.
 */
public class MultiScrollListener implements AbsListView.OnScrollListener {
    List<AbsListView.OnScrollListener> mListeners = new ArrayList<AbsListView.OnScrollListener>();
    public void addScrollListener(AbsListView.OnScrollListener listener){
        mListeners.add(listener);
    }
    public void removeListener(AbsListView.OnScrollListener listener){
        mListeners.remove(listener);
    }
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        for(AbsListView.OnScrollListener listener: mListeners){
            listener.onScrollStateChanged(view,scrollState);
        }
    }

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        for(AbsListView.OnScrollListener listener: mListeners){
            listener.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount);
        }
    }
}

使用相同的侦听器实例,您还可以在listener@tyczj我不能使用同一个listener实例。StickyHeader也有自己的侦听器和floatingActionButton。
MultiScrollListener scrolls = new MultiScrollListener();
scrolls.addScrollListener(scroll1);
scrolls.addScrollListener(scroll2);
mListView.setOnScrollListener(scrolls);