Din*_*var 3 android android-recyclerview itemtouchhelper
我们正在 RecyclerView 中实现 ItemTouchHelper,当我们在 RV 中向左滑动时,我们正在覆盖 onChildDraw,问题是,如果我有一个 X 大小的 RecyclerView,我尝试关闭 2、3、4 或5 个元素,唯一一个显示文本的是 List 中的第一个元素,但是,如果是图像,它工作得很好
@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);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
可能为时已晚,但无论如何我都会回答。您的问题是在画布上绘制文本时,您必须设置 X 和 Y 位置,并且由于所有项目的画布都相同,因此您不断在相同的 Y 位置设置相同的文本。解决方案是将itemView.getTop()添加到您的 Text 的 Y 位置:
c.drawText(inbox, itemView.getRight() - 200, itemView.getTop() + itemView.getHeight() / 2, paint);
Run Code Online (Sandbox Code Playgroud)
对不起我的英语
| 归档时间: |
|
| 查看次数: |
1433 次 |
| 最近记录: |