[英]On Item Click Listener for RecyclerView - How can I use the position of an item in a recycler view to smoothscroll to another listview?
[英]How can I update the position of an item inside of a RecyclerView?
我正在嘗試將一項功能添加到待辦事項列表中,從而導致“已選中”項目進入列表底部。 我正在使用ArrayList
來保存使用RecyclerView
進行組織的項目,因此我知道關鍵在於更新位置,但是我不確定如何做到這一點。
我很困惑您如何將所有內容上移一個,然后將選中的項目放在最后一個位置,使其位於列表的底部。
這就是我對復選框進行檢查和取消檢查的方式:
taskCheckBox.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
if (holder.taskCheckBox.isChecked())
{
bucketItem.setSelected(false);
holder.taskCheckBox.setChecked(false);
}
else
{
bucketItem.setSelected(true);
holder.taskCheckBox.setChecked(true);
}
}
});
我不知道要添加什么來更新職位,我仍然對如何始終知道“底部”感到困惑,因為列表中沒有固定數量的項目。
Android團隊添加了對此類操作的支持。 查看DiffUtils: https : //github.com/mrmike/DiffUtil-sample
簡而言之,您只需要提供適當的數據集,並讓庫找出發生了什么變化。
如果您仍然想手動執行此操作,則需要執行以下操作:
單擊時,將基礎模型更新為具有正確的選定狀態
將該項目重新排序到列表中的適當位置。 (list.remove(位置),然后list.add(項目),也許)
在適配器上調用notifyDataSetChanged()。 (甚至更好的notifyRangeChanged(from,to)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.