gpt4 book ai didi

android - ItemTouchHelper,滑动以删除 Canvas 中的文本

转载 作者:行者123 更新时间:2023-12-04 01:44:08 24 4
gpt4 key购买 nike

我们在 RecyclerView 中实现 ItemTouchHelper,当我们在 RV 中向左滑动时,我们正在覆盖 onChildDraw,问题是,如果我有一个 X 大小的 RecyclerView,我尝试关闭 2、3、4 或5 个元素,唯一显示文本的是列表中的第一个元素,但是,如果是图像,它工作得很好

@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
if (viewHolder.getAdapterPosition() == -1)
return;
View itemView = viewHolder.itemView;
Paint paint = new Paint();
paint.setColor(Color.WHITE);
paint.setTextSize(40);
paint.setTextAlign(Paint.Align.CENTER);
String inbox = itemView.getContext().getResources().getString(R.string.sendinbox);
c.drawText(inbox, itemView.getRight() - 200, itemView.getHeight()/2, paint);
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}

最佳答案

可能为时已晚,但无论如何我都会回答。
您的问题是在 Canvas 上绘制文本时,您必须设置 X 和 Y 位置,并且由于所有项目的 Canvas 都相同,因此您不断在相同的 Y 位置设置相同的文本。解决方案是添加 itemView.getTop() 到您的文本的 Y 位置:

c.drawText(inbox, itemView.getRight() - 200, itemView.getTop() + itemView.getHeight() / 2, paint);

对不起我的英语

关于android - ItemTouchHelper,滑动以删除 Canvas 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813397/

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