2016-10-14 24 views
-1

我的分段滾動存在問題。 我想裝載添加列表的另一部分,當用戶到達片段的結尾。setOnScrollListener無法正常工作我不知道用戶何時處於列表末尾

片段之一:

View inflatedView = inflater.inflate(R.layout.tab1, container, false); 
list = (ListView) inflatedView.findViewById(R.id.list); 
... 
MainActivity.Adapter adapter = new MainActivity.Adapter(getActivity().getApplicationContext(), R.layout.row, result); 
list.setAdapter(adapter); 
list.setOnScrollListener(adapter); 
list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

類適配器:

public static class Adapter extends ArrayAdapter implements AbsListView.OnScrollListener { 
.... 
@Override 
public void onScrollStateChanged(AbsListView view, int scrollState) { 
     Toast.makeText(getContext().getApplicationContext(), "one", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
     Toast.makeText(getContext().getApplicationContext(), "two", Toast.LENGTH_SHORT).show(); 
    } 
} 

此功能,當我去在頁面的末尾不工作。錯誤在哪裏?

+0

http://stackoverflow.com/questions/6358428/implementation-of-onscrolllistener-to-detect-the-end-of-scrolling-in-a-listview – USKMobility

+0

遺憾沒有爲我工作! – Helpme

回答

0

我會使用RecyclerView作爲列表並添加滾動監聽器。您需要在回收視圖中保留對佈局管理器的引用。

private LinearLayoutManager layoutManager; 
private RecyclerView.OnScrollListener recyclerViewOnScrollListener = new RecyclerView.OnScrollListener() { 
    @Override 
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) { 
     super.onScrollStateChanged(recyclerView, newState); 
    } 

    @Override 
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) { 
     super.onScrolled(recyclerView, dx, dy); 
     // don't load more unless actually scrolled 
     if (dx == 0 && dy == 0) { 
      return; 
     } 
     int visibleItemCount = layoutManager.getChildCount(); 
     int totalItemCount = layoutManager.getItemCount(); 
     int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition(); 
     // load more items depending on visible items and total 

    } 
}; 
+0

mLayoutManager是什麼? – Helpme

+0

應該是'layoutManager'。我更新了。這是您設置時用於回收站視圖的佈局管理器。 recyclerview設置代碼不包括在我的答案中。 –

相關問題