我正在尝试为卡片执行撤消功能,当刷卡左边时会被删除(第一次滑动显示撤消,下一个滑动触发器删除)
我正在尝试以下代码(部分工作我猜)
SwipeableRecyclerVIEwtouchListener srvtouchListner = new SwipeableRecyclerVIEwtouchListener(rvTimerList,new SwipeableRecyclerVIEwtouchListener.SwipeListener(){ @OverrIDe public boolean canSwipe(int i) { return true; } @OverrIDe public voID ondismissedBySwipeleft(RecyclerVIEw recyclerVIEw,int[] ints) { for(int position : ints){ VIEw vIEw = recyclerVIEw.getChildAt(position); if (vIEw.getTag(R.string.card_undo) == null) { if(vIEwStack == null) { savetoVIEwStack(position,vIEw); final VIEwGroup vIEwGroup = (VIEwGroup) vIEw.findVIEwByID(R.ID.time_card2); vIEw.setTag(R.string.card_undo,"true"); vIEwGroup.addVIEw(vIEw.inflate(TimerSummary.this,R.layout.timeslot_card_undo,null)); } } else { Log.d(TAG,"Removing Item"); deleteTimeSlot(timerInstanceList.get(position)); Toast.makeText(TimerSummary.this,"Deleted!",Toast.LENGTH_SHORT).show(); timerInstanceList.remove(position); finalSummaryAdapter.notifyItemRemoved(position); } } finalSummaryAdapter.notifyDataSetChanged(); } @OverrIDe public voID ondismissedBySwipeRight(RecyclerVIEw recyclerVIEw,int[] ints) { for (int position:ints){ VIEw vIEw = recyclerVIEw.getChildAt(position); if(vIEw.getTag(R.string.card_undo) != null && vIEw.getTag(R.string.card_undo).equals("true")){ vIEwStack = null; recyclerVIEw.setAdapter(finalSummaryAdapter); } } } });
当项目更多(需要滚动)
VIEw vIEw = recyclerVIEw.getChildAt(position);
返回引用应用程序崩溃的空引用.
我怀疑我使用错误的方法来观察.我应该使用与观众有关的东西,实际上我对于如何从观众获取你想要的视图感到困惑.
如果任何人可以分享任何有助于,那将是伟大的!
如果有人想要,我会很乐意提供更多的信息,
https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html#findViewHolderForAdapterPosition(int)
请记住,如果位置未布局(例如超出或移除),它将返回null.
总结以上是内存溢出为你收集整理的android – RecyclerView.getChild(index)在列表滚动时显示为空(索引被搞砸了)全部内容,希望文章能够帮你解决android – RecyclerView.getChild(index)在列表滚动时显示为空(索引被搞砸了)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)