2015-10-08 13 views
9

RecyclerViewを使用しています。最初の項目の前に項目を追加し、追加された最初の項目までスクロール位置が移動します。新しい商品を最初のインデックスに追加した後、スクロール位置を維持するにはどうすればいいですか?notifydatasetchange()とお電話できますか?RecyclerViewの最初のインデックスで項目を追加した後にスクロール位置に留まる方法notftydatasetchange

これは私が私のアダプタ

mCurrentFragment.items.addAll(0, createLineItems(dataArrayList)); 

    notifyDataSetChanged(); 

任意の提案をして何ですか?

+0

あなたは – filipproch

+0

手動で挿入された項目のammountとセットのスクロール値からOK、それを計算することができ、私は助けのためのTHX – eddykordo

答えて

20

2つのオプションがあります。

  1. notify

    List newData = createLineItems(dataArrayList); 
    mCurrentFragment.items.addAll(0, newData); 
    notifyItemRangeInserted(0, newData.size()); 
    
  2. 使用安定したIDがのより洗練されたバージョンを使用しますが。アダプタをオーバーライドして平均値の値を返し、setHasStableIds(true);と呼び出してください。

+0

最初のオプションは、私の作品は、それをしようとしますか?それはそれぞれのアイテムに関連する一意のIDを意味するのでしょうか? – eddykordo

+0

@Budiusあなたは意味のあることで何を意味するか、THX –

+0

@HamzehSoboh私はそれを正確に意味しました。あなたのIDが単なる位置(例えば)であれば、それは機能しません。ビューの位置が変わると、IDはデータにバインドされたままになります。 – Budius

関連する問題