2014-11-22 111 views
13

我使用RecyclerView作爲我的數據列表的基礎。 我已經實現了基於ArraList的自定義RecyclerView.Adapter。從我參加競選的互聯網代碼獲取數據是:android notifyItemRangeInserted disable autoscroll

public void addItems(List<Item> items){ 

    final int size = data.size(); 
    data.addAll(items); 
    notifyItemRangeInserted(size, items.size()); 
} 

問題是,運行此代碼後,我發現了一個自動滾動到列表的底部(最後一個元素是現在可見)

有沒有辦法可以禁用它?找不到任何類似的問題。

相關信息:我的適配器有2個viewHolders - 卡位0它有一個視圖(viewType 0) 和列表的其餘部分有鑑於與viewType 1

感謝您的幫助!

羅伊

+0

您是否嘗試過調用stopScroll()? – 2014-11-22 17:09:59

+0

感謝您的幫助。我現在試過了,它不起作用。另外,我對於後插入解決方案並不着迷,因爲它可以在stopScroll運行之前開始滾動一點。但無論如何它不工作/ - : – royB 2014-11-22 17:21:55

+0

檢查,如果你有一個地方scrollToPosition調用,因爲默認情況下RecyclerView不會自動滾動 – pskink 2014-11-22 17:27:29

回答

20

問題是在你的位置開始。應該是:

public void addItems(List<QuestItem> items){  
    final int positionStart = data.size() + 1; 
    data.addAll(items); 
    notifyItemRangeInserted(positionStart, items.size()); 
} 
+0

是的好...你可以看到我已經添加了一個評論,這樣說(從二十三)。謝謝,無論如何,隊友! – royB 2015-05-26 10:21:18

+3

@localhost @royB根據文檔,'positionStart'是插入的第一個項目的位置。所以不應該是'data.size()'因爲這是第一個項目被插入的地方嗎? :p – 2015-07-28 12:45:06

+0

@AbhishekV yep:D但是關於這個問題,應該是+1 – localhost 2015-07-28 12:46:24