2014-09-12 66 views
2

我想创建与粘节头和一个浮动的操作按钮列表视图。如何几个滚动监听绑定在一个ListView?

我用2个库本(StickyListHeaders和FloatingActionButton),但他们需要滚动监听器绑定到ListView来的作品。问题是在listview上只能有一个滚动监听器。

我怎么能使用2滚动监听器列表视图?

+0

使用监听器的同一实例两个 – tyczj 2014-09-12 15:14:38

+0

你还可以在收听 – Blackbelt 2014-09-12 15:20:26

+0

的顶部实现一个观察者@tyczj我不能使用监听器的相同instanace。 StickyHeader也有它自己的监听器和floatingActionButton。 – Patrick 2014-09-12 15:27:54

回答

7

结合滚动听众的名单,使只有一个监听器,通知所有的人都非常简单的解决您的请求。

注意:如果您计划从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); 
     } 
    } 
} 

用法:

MultiScrollListener scrolls = new MultiScrollListener(); 
scrolls.addScrollListener(scroll1); 
scrolls.addScrollListener(scroll2); 
mListView.setOnScrollListener(scrolls); 
相关问题