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