簡體   English   中英

將新項目添加到RecyclerView的頂部

[英]Adding new item to the top of the RecyclerView

我正在以編程方式向recyclerview位置0添加一個項目

public void addQuestion(Question question){
    this.questionList.add(0, question);
    notifyItemInserted(0);
}

這項工作非常好,項目確實出現在頂部的列表中,但用戶必須向上滾動才能看到新項目。

是否有任何技巧如何項目出現在頂部,Recyclerview自動滾動?

那么你可以使用mRecyclerView.smoothScrollToPosition(int position)

例:

public void addQuestion(Question question){
    this.questionList.add(0, question);
    notifyItemInserted(0);
    mRecyclerView.smoothScrollToPosition(0);
}

更新:

如果你想讓滾動到某個項目非常順利,你可以看看這個問題的答案

RecyclerView - 如何在某個位置平滑滾動到項目頂部?

是的,你可以這樣做

mRecyclerView.smoothScrollToPosition(0);

試試這個

mRecyclerView.smoothScrollToPosition(0);

如果我理解正確,你問題是你已經滾動到列表頂部,但插入時你必須再次滾動查看項目,你可以嘗試我的方法來避免它。

根據我的經驗,插入后滾動的方法可行,但動畫看起來並不自然。

如果您真的想保存動畫,可以嘗試一種方法,幫助我完成項目:使用多類型回收器。 在適配器的0位置顯示第二種類型的附加項目。 這個項目可以只是一個帶有小填充,標題(如果需要)甚至是空視圖的視圖。 然后,notifyItemInserted(1),你會得到很好的插入動畫。

注意:此方法可能會增加項目的復雜性,並需要有關多類型回收站視圖的知識。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM