2013-08-20 102 views
0

在我的Android應用程序,我有一個listview.which填充從JSON文件,我收到後發送休息API到服務器。 現在我只想顯示一次只能在列表中顯示20個項目(一次只能從服務器獲取20個項目) 現在說更多要顯示的項目我想拖動列表視圖以填充更多項目。 像gmail android應用程序。刷新列表視圖上拖動或向上像Gmail或Facebook

任何人都可以告訴我正確的程序來做到這一點。我如何實現這種視覺效果的功能。

請幫助

+1

功能被命名爲'pull-to-refresh',你可以找到很多提供這個功能的庫。例如。 https://github.com/chrisbanes/Android-PullToRefresh –

回答

0

克里斯·巴內斯(即實現最佳的拉刷新爲Android組件此次被同一個人)也實施了類似的GMail拉來刷新。

你可以找到它here

注意,該項目仍處於開發階段,因此目前的API可能會改變。

0

一個非常簡單的方法: 您可以創建一個擴展ListView小部件的自定義組件。 在這個自定義組件中,您可以在用戶觸摸屏幕時實現您的邏輯。所以你必須重寫onTouchEvent(MotionEvent event)。 類似的東西

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    //System.out.println("First ["+this.getFirstVisiblePosition()+"]"); 

    float y = event.getY(); 

    switch (event.getAction()) { 
     case MotionEvent.ACTION_MOVE: { 
      if ((y - startY) > THRESHOLD && STATE_REFRESH_ENABLED && !STATE_REFRESHING) { 
       if (listener != null) { 
        listener.onRefresh(); 
        STATE_REFRESHING = true; 
       } 
      } 
     } 
     break; 
     case MotionEvent.ACTION_DOWN: { 
      startY = y; 
      STATE_REFRESH_ENABLED = getFirstVisiblePosition() == 0; // We are on the first element so we can enable refresh 
     } 
     case MotionEvent.ACTION_UP: { 
      STATE_REFRESHING = false; 
     } 

    } 
    return super.onTouchEvent(event); 
} 

並實施監聽器接口得到通知時,它是時間刷新列表視圖。 你可以看看我的blog,我詳細介紹瞭如何創建這個組件。