2014-12-06 109 views
2

我正在開發一個android日曆應用程序,它在listview中顯示日期。我能夠在向下滾動的同時將數據添加到列表視圖中。現在我想在滾動時做同樣的事情。我怎樣才能將數據添加到列表視圖的頂部,並滾動列表視圖的第一個數據?如何在列表視圖的頂部添加添加數據

這是我的代碼。

public class AllEventFragment extends Fragment{ 
private final int INITIAL_DAYS = 14; 

private final int THRESHOLD = 14; 
private int currentPage = 0; 
private int previousTotal = 0; 
private boolean loading = true; 

@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    mListView = (ListView) getView().findViewById(R.id.list); 

    mListView.setOnScrollListener(new AbsListView.OnScrollListener() { 
     private int mLastItem; 

     @Override 
     public void onScrollStateChanged(AbsListView absListView, int i) { 

     } 

     @Override 
     public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, 
     int totalItemCount) { 

      if (loading){ 
       if (totalItemCount > previousTotal){ 
        loading = false; 
        previousTotal = totalItemCount; 
        currentPage++; 
       } 
       if(totalItemCount < totalItemCount){ 
        loading = false; 
        previousTotal = totalItemCount; 
        currentPage++; 
       } 
      } 
      if (!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + THRESHOLD)){ 
       addMoreDaysToBottom(currentPage + 1); 
       loading = true; 
      } 
      } 

回答

0

使用Vector來存儲項目。

實現ListAdapter,它返回Vector中的項目。

當你需要在頂部添加一個項目,請將其作爲矢量

的第一個元素刷新的ListView的適配器

+0

我已經做到了,並已經能夠添加數據,同時滾動向下(但並未將該部分代碼添加到上面顯示的代碼段中)。我現在的問題是當用戶嘗試超出ArrayList中的第一個元素時,如何以編程方式將數據添加到列表頂部。換句話說,這與我已經完成的工作相反。 – user2890137 2014-12-06 16:08:45

+0

你的意思是像Facebook應用程序的拉到刷新效果? – 2014-12-06 16:10:40

+0

實際上並沒有真正拉動刷新效果。一個關閉的例子是WhatsApp聊天listView中的「加載早期消息」。由於我的日曆應用程序,當用戶嘗試超出陣列列表中的第一個初始化元素(即今天的日期)時,前幾天的日期將被添加到listView。我如何確定用戶何時試圖通過ScrollListener超越數組列表的第一個元素。 – user2890137 2014-12-06 16:23:54

相關問題