android–notifyItemChanged没有刷新视图

android–notifyItemChanged没有刷新视图,第1张

概述首先,我整天都在努力,但无法完成任何事情.我有一个带有适配器的RecyclerView,它使用RecyclerView的SortedList.我尝试使用回调类实现TouchHelper:public class TimerListTouchHelperCallback extends ItemTouchHelper.SimpleCallback {

首先,我整天都在努力,但无法完成任何事情.我有一个带有适配器的RecyclerVIEw,它使用RecyclerVIEw的SortedList.我尝试使用回调类实现touchHelper:

public class TimerListtouchHelperCallback extends itemtouchhelper.SimpleCallback {    private OnItemchangelistener onItemchangelistener;    public TimerListtouchHelperCallback(OnItemchangelistener Listener,int dragDirs,int swipeDirs) {        super(dragDirs,swipeDirs);        this.onItemchangelistener = Listener;    }    @OverrIDe    public int getSwipeDirs(RecyclerVIEw recyclerVIEw,RecyclerVIEw.VIEwHolder vIEwHolder) {        TimerHolder holder = (TimerHolder) vIEwHolder;        int holderState = holder.getState();        if (holderState == TimerHolder.TIMER_PENDING_DELETE) return 0;        else return super.getSwipeDirs(recyclerVIEw,vIEwHolder);    }    @OverrIDe    public boolean onMove(RecyclerVIEw recyclerVIEw,RecyclerVIEw.VIEwHolder vIEwHolder,RecyclerVIEw.VIEwHolder target) {        return false;    }    @OverrIDe    public voID onSwiped(RecyclerVIEw.VIEwHolder vIEwHolder,int swipeDir) {        TimerHolder holder = (TimerHolder) vIEwHolder;        int position = holder.getAdapterposition();        // VIEwHolder's state is changed that should handle the layout change.        holder.setState(TimerHolder.TIMER_PENDING_DELETE);         if (onItemchangelistener != null) onItemchangelistener.onItemSwiped(position);    }    protected interface OnItemchangelistener{        voID onItemSwiped(int position);    }}

这是touchHelper的初始化

timerAdapter = new TimerAdapter(this,timerList);    timerListVIEw.setAdapter(timerAdapter);TimerListtouchHelperCallback touchHelperCallback = new TimerListtouchHelperCallback(        timerAdapter,itemtouchhelper.left,itemtouchhelper.left);itemtouchhelper swipetodismisstouchHelper = new itemtouchhelper(touchHelperCallback);swipetodismisstouchHelper.attachToRecyclerVIEw(timerListVIEw);

我的适配器实现了OnItemchangelistener接口

@OverrIDepublic voID onItemSwiped(int position) {    notifyItemChanged(position);    removalPendingTimers.add(timerList.get(position));}

我的VIEwHolder读取状态,当状态为TimerHolder.TIMER_PENDING_DELETE时,它会隐藏视图的其余部分并显示带有撤消按钮的界面.但是直到我滚动视图并再次向后滚动它才会发生这种情况.有什么建议我缺少什么?

链接

Adapter class
ViewHolder class最佳答案终于让它运行了.由于notifyItemChanged没有切割它(它应该有),我使用notifyItemRemoved后跟notifyItemInserted.

稍稍滞后但是有效.

总结

以上是内存溢出为你收集整理的android – notifyItemChanged没有刷新视图全部内容,希望文章能够帮你解决android – notifyItemChanged没有刷新视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1139408.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存