
首先,我整天都在努力,但无法完成任何事情.我有一个带有适配器的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没有刷新视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)