2013-02-24 21 views

回答

2

創建一個繼承SwipeRefreshLayout一個類並重寫canChildScrollUp(方法檢查StaggeredGridView到達頂部或沒有,如果它到達頂部返回true否則返回false。

public class SwipeDownToRefrsh extends SwipeRefreshLayout{ 

PullToRefreshStaggeredGridView pullToRefreshStaggeredGridView; 

public SwipeDownToRefrsh(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    // TODO Auto-generated constructor stub 
} 



public void canChildScrollUp (PullToRefreshStaggeredGridView pullToRefreshStaggeredGridView) { 
    this.pullToRefreshStaggeredGridView = pullToRefreshStaggeredGridView; 
} 


@Override 
public boolean canChildScrollUp() { 
    // TODO Auto-generated method stub 
    if (pullToRefreshStaggeredGridView == null) { 
     return true; 
    } else { 
     return !pullToRefreshStaggeredGridView.getRefreshableView().mGetToTop; 
    } 
} 

}

在您的活動或片段只是把你的StaggeredGridView這樣的瞬間:

((SwipeDownToRefrsh)holder.swipeRefreshLayout).canChildScrollUp(holder.staggeredGridView);

+0

最好不要使用鏈接唯一的答案,因爲鏈接可能會過期,讓每個人都想知道解決方案是什麼 – 2015-05-31 19:49:25

+0

我會檢查它並編輯我的答案。 – 2015-05-31 19:53:00

+0

赤我編輯答案 – 2015-06-01 12:53:54

10

以下是我試圖解決這個問題

首先,添加一個私有的實例:

private AbsListView.OnScrollListener mOnScrollListener; 

廣告d公共setOnClickListener方法:

public void setOnScrollListener (AbsListView.OnScrollListener l) { 
    mOnScrollListener = l; 
} 

然後,在trackMotionScroll,添加命令行來調用監聽器:

private boolean trackMotionScroll(int deltaY, boolean allowOverScroll) { 
. 
. 
. 

/* HERE we call onScroll */ 
if (mOnScrollListener != null) { 
    mOnScrollListener.onScroll(null, getFirstPosition(), getChildCount(), this.mItemCount); 
} 

return deltaY == 0 || movedBy != 0; 
} 

您也可以實現自己的onScrollStateChanged (AbsListView view, int scrollState)的方法,但我懶得這樣做:P

最後,你可以調用gridView.setOnScrollListener(listener)在聽衆傳遞給StaggeredGridView

希望它能幫助。

+0

StaggeredGridView他們沒有這個setOnScrollListener(偵聽器)的方法 – Saleeh 2013-04-04 04:36:08

+0

您可以在StaggeredGridView類中編輯源代碼並實現此方法,因爲插件本身實際上並沒有此方法。 – 2013-04-08 03:21:57

+1

這是滾動監聽器問題的解決方案,答案應該被接受。 – 2013-06-05 12:37:16

1

我遇到同樣的問題,這就是爲什麼我添加滾動收聽自己的支持,你可以在github這裏的項目:)https://github.com/GoMino/StaggeredGridView

+0

不錯的修復@gomino。我面臨同樣的問題,我將使用你的代碼。謝謝! ps:upvoted的方式。 – axierjhtjz 2013-11-25 15:53:00

+0

沒有項目點擊???爲什麼?? – 2015-02-04 06:58:04