gpt4 book ai didi

android - 滚动列表时 RecyclerView.getChild(index) 显示 null(索引变得困惑)

转载 作者:可可西里 更新时间:2023-11-01 18:55:31 25 4
gpt4 key购买 nike

我一直在为我的 android 应用程序使用 SwipeableRecyclerView 来为我的 recyclerView 启用滑动。 RecyclerView 包含一个 cardView 列表。

我正在尝试为向左滑动时将被删除的卡片实现撤消功能(第一次滑动显示撤消,下一次滑动触发删除)

我正在尝试以下代码(我猜是部分工作)

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);
}
}

}
});

当 Items 较多时(需要滚动)

View view = recyclerView.getChildAt(position);

返回导致应用程序崩溃的空引用。

我怀疑我使用了错误的方法来获取 View 。我应该使用与 viewholder 相关的东西,我实际上对如何从 viewholder 获得你想要的 View 感到困惑。

如果有人可以分享任何有帮助的东西,那就太好了!如果有人需要,我很乐意提供更多信息,

最佳答案

您应该使用 findViewHolderForAdapterPositionhttps://developer.android.com/reference/android/support/v7/widget/RecyclerView.html#findViewHolderForAdapterPosition(int)

请记住,如果位置未布局(例如超出范围或已移除),它将返回 null。

关于android - 滚动列表时 RecyclerView.getChild(index) 显示 null(索引变得困惑),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30860843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com