2017-01-16 78 views
1

我已將滑動刷新佈局附加爲頂級父節點,以向用戶提供下拉刷新選項。向下滾動導致激活下拉刷新選項

所以,當我向下滾動,我無法滾動,自動下拉選項開始加載。

我已經搜索了一些有關同一問題的堆棧溢出問題。他們說滾動監聽並禁用基於列表視圖當前索引的下拉選項。

我試過聽它。但我無法聽到任何事件時滾動下來。

我的列表視圖對象:

mListView = (ListView) getView().findViewById(android.R.id.list); 

誰能請幫助我。任何其他有趣的解決方案或解決。

回答

5

我就是這麼做的,它的工作完美:

class YourActivity extends AppCompatActivity implements ViewTreeObserver.OnScrollChangedListener { 
@Override 
protected void onStart() { 
    super.onStart(); 
    mListView.getViewTreeObserver().addOnScrollChangedListener(this); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
     mListView.getViewTreeObserver().removeOnScrollChangedListener(this); 
} 


@Override 
public void onScrollChanged() { 
    if (mListView.getFirstVisiblePosition() == 0) { 
     swipeRefresh.setEnabled(true); 
    } else { 
     swipeRefresh.setEnabled(false); 
    } 
} 
} 

希望這會有所幫助。

+1

非常感謝@Mohanand。太棒了......但相反getScrollY()我已經使用getFirstVisiblePosition()。它的工作完美。你節省了我的時間。謝謝... – Vji

+0

沒錯,getFirstVisiblePosition()會起作用。歡迎:) –

+0

HI Mohanad。我還有一個查詢。考慮到佈局中沒有列表視圖,當佈局的第一個元素可見時,我必須啓用/禁用刷卡刷新佈局。如何實施? – Vji

1

在我的情況下,我通過將Scrollview改爲NestedScrollView來解決問題。

切換到NestedScrollView後,它工作正常