从RecyclerView GridLayout删除项目

韦恩

我的RecyclerView GridLayout如下图所示,但我不知道如何删除项目。我想创建一个新的ImageView,当LongClick项目出现时,如果我将此元素移到ImageView的顶部,则该元素将被删除。拜托,帮帮我,怎么办?

在此处输入图片说明

谢尔盖·莫里亚克(Sergey Molyak)

首先下载GitHub项目,例如@zahidulislam。编辑文件。

主要活动:

public class MainActivity extends AppCompatActivity {

private RecyclerListAdapter adapter;
private ImageView trashImage;
private RecyclerView recyclerView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setSupportActionBar((Toolbar) findViewById(R.id.toolbar));

    trashImage = (ImageView) findViewById(R.id.trash_can);
    adapter = new RecyclerListAdapter(this);

    recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
    recyclerView.setAdapter(adapter);

    GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
    recyclerView.setLayoutManager(layoutManager);

    recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {
        }

        @Override
        public void onItemLongClick(final View view, final int position) {
            final ImageView trashCan = (ImageView) trashImage.findViewById(R.id.trash_can);
            trashCan.setVisibility(View.VISIBLE);

            recyclerView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    int y = SimpleItemTouchHelperCallback.y;
                    switch (event.getAction()) {
                        case MotionEvent.ACTION_MOVE:
                            if (y < -50) {
                                trashCan.setImageDrawable(getResources().getDrawable(R.drawable.trashcan_hover));
                            } else {
                                trashCan.setImageDrawable(getResources().getDrawable(R.drawable.trashcan));
                            }
                            break;
                        case MotionEvent.ACTION_UP:
                            if (y < -50) {
                                RecyclerListAdapter.mItems.remove(position);
                                adapter.notifyDataSetChanged();
                                trashCan.setImageDrawable(getResources().getDrawable(R.drawable.trashcan));
                                trashCan.setVisibility(View.GONE);
                                return true;
                            }
                            trashCan.setVisibility(View.GONE);
                        case MotionEvent.ACTION_CANCEL:
                            break;
                    }
                    return false;
                }
            });
        }
    }));

    ItemTouchHelper.Callback callback = new SimpleItemTouchHelperCallback(adapter);
    ItemTouchHelper mItemTouchHelper = new ItemTouchHelper(callback);
    mItemTouchHelper.attachToRecyclerView(recyclerView);
    }
}

SimpleItemTouchHelperCallback中添加字段:

public static int y;

和方法表达 public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive)

y = (int) viewHolder.itemView.getY();

只需放在顶部(垃圾桶)即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从RecyclerView删除项目

来自分类Dev

删除RecyclerView项目

来自分类Dev

从RecyclerView删除所有项目

来自分类Dev

从嵌套的RecyclerView中删除项目

来自分类Dev

OnClick 从 RecyclerView 中删除项目?

来自分类Dev

删除项目时刷新 RecyclerView

来自分类Dev

如何延迟从RecyclerView中删除项目

来自分类Dev

时间到期后,从Recyclerview中删除项目

来自分类Dev

在RecyclerView Android中删除项目之间的间距

来自分类Dev

数据更新后从recyclerView中删除项目

来自分类Dev

如何通过ID删除recyclerview项目?

来自分类Dev

如何从使用diffutil的recyclerview中删除项目?

来自分类Dev

删除项目时Android recyclerview不更新

来自分类Dev

RecyclerView的项目位置在滚动时会更改或删除

来自分类Dev

从Realm和RecyclerView中删除项目

来自分类Dev

删除项目后,RecyclerView 不更新

来自分类Dev

从 RecyclerView 删除项目时出现问题

来自分类Dev

Recyclerview(在Recyclerview上获取项目)

来自分类Dev

GridLayout与带有GridLayoutManager的RecyclerView

来自分类Dev

无法删除CardView项目之间的多余空间-Scrollable RecyclerView

来自分类Dev

带页脚的Recyclerview无法删除最后一个项目

来自分类Dev

SQLite数据库中的项目未在RecyclerView中删除

来自分类Dev

如何从RecyclerView中的所有项目中删除按钮/视图?

来自分类Dev

从RecyclerView,Kotlin,Android Studio中删除项目时出错

来自分类Dev

Kotlin RecyclerView删除项目。这是一个错误吗?

来自分类Dev

我如何从数据库中删除recyclerView中的项目

来自分类Dev

SQLite数据库中的项目未在RecyclerView中删除

来自分类Dev

带页脚的Recyclerview无法删除最后一个项目

来自分类Dev

是否可以在recyclerview中删除以前的项目?

Related 相关文章

热门标签

归档