簡體   English   中英

滾動到RecyclerView中插入的項目

[英]Scroll on item inserted in RecyclerView

我已經制作了一個由ViewHolder組成的RecylcerView (A)ViewHolder包含另一個RecyclerView (B) 當插入/修改B中的項目( notifyItemInserted() / notifyItemChanged() )時,我希望A滾動直到屏幕上剛插入/修改的B項目出現。

我在A中擁有B的位置,因此我得到了B,並且檢索了最后一個元素,即剛剛插入的元素。 當我調用findViewHolderForAdapterPosition時,我得到了NullPointerExeption

我的代碼:

RecyclerView B = ((MyAdapter.MyViewHolder)A
                    .findfindViewHolderForAdapterPosition(posB))
                    .getRecyclerViewB();
B.scrollToPosition(B.getAdapter().getItemCount()-1);

我究竟做錯了什么? 這種方法對嗎?

如果此位置(遠)超出顯示區域,則它將沒有綁定ViewHolder 只需在這里使用RecyclerView.scrollToPosition(int position)

A.scrollToPosition(positionOfB)

我在“回收站”視圖上使用布局管理器

fun setData(listItems: List<ItemDataModel>) {
            customAdapter.clear()
            customAdapter.addAll(listItems)
            (layoutManager as? LinearLayoutManager)?.scrollToPositionWithOffset(customAdapter.itemCount - 1, 0)
        }

-----自定義適配器方法----

 fun clear() {
        items.clear()
        notifyDataSetChanged()
    }

fun addAll(items: List<T>) {
        this.items.addAll(items)
        notifyItemRangeInserted(this.items.lastIndex, items.size)
    }

暫無
暫無

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

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