我想创建一个带有Sticky节标题和浮动操作按钮的listview。
我为此使用了2个库(StickyListHeaders和FloatingActionButton),但是它们需要将滚动监听器绑定到listview到works。问题是在listview上只能有一个滚动侦听器。
如何在列表视图上使用2个滚动侦听器?
发布于 2014-09-12 16:07:36
组合一个滚动监听器的列表,并且只让一个侦听器通知所有这些监听器,对于您的请求来说是非常简单的解决方案。
注意:如果计划从OnScrollListener重写来自MultiScrollListener的方法,请确保进行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);
}
}
}用法:
MultiScrollListener scrolls = new MultiScrollListener();
scrolls.addScrollListener(scroll1);
scrolls.addScrollListener(scroll2);
mListView.setOnScrollListener(scrolls);https://stackoverflow.com/questions/25811458
复制相似问题