web-dev-qa-db-ja.com

android notifyItemRangeInsertedは自動スクロールを無効にします

データリストのベースとしてRecyclerViewを使用しています。 ArraListに基づくカスタムRecyclerView.Adapterを実装しました。インターネットからデータをフェッチする際に実行しているコードは次のとおりです。

public void addItems(List<Item> items){

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

問題は、このコードを実行した後、リストの一番下に自動スクロールが表示されることです(最後の要素が表示されます)

これを無効にする方法はありますか?同様の質問は見つかりませんでした。

関連情報:私のアダプターには2つのviewHoldersがあります-位置0の場合はビュー(viewType 0)があり、リストの残りの部分にはviewType1のビューがあります

ご協力いただきありがとうございます!

ロイ

20
royB

問題はあなたのpositionStartにあります。する必要があります:

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