如何在 RecyclerView.Adapter 中获取 Snackbar 的视图?

How to get View in RecyclerView.Adapter for Snackbar?

我正在通过此 article 的帮助在 RecyclerView 中实施 滑动 和拖动。删除项目时我想显示 SnackBar 但显示 SnackBar 需要查看。我不知道如何在 RecyclerAdapter.

的函数中获取 View

我的代码:

public void onItemDismiss(int position) {
        notes.remove(position);
        notifyItemRemoved(position);
        /* Show SnackBar */
    }

编辑:我的问题与 this question 不同。我在实施方面没有任何问题 SwipetoDismiss.I 已成功实施。但我想显示一个 SnackBar,以便可以通知用户和撤消。我在显示 SnackBar 时遇到问题,而不是在实现 onSwiped() 时遇到问题。

修改您的方法并将RecyclerView作为参数传递,这样您将获得视图

public void onItemDismiss(int position,RecyclerView rv) {
        notes.remove(position);
        notifyItemRemoved(position);
        /* Show SnackBar */
        Snackbar.make(rv, R.string.snackbar_text, Snackbar.LENGTH_LONG).show(); 
    }

编辑

private final ItemTouchHelperAdapter mAdapter;
private final RecyclerView rv;
public SimpleItemTouchHelperCallback(ItemTouchHelperAdapter adapter,RecyclerView rv) {
    mAdapter = adapter;
    this.rv=rv;
}

然后通过

 @Override
    public void onSwiped(ViewHolder viewHolder, int direction) {
        mAdapter.onItemDismiss(viewHolder.getAdapterPosition(),rv);
    }

您可以通过对上下文进行类型转换来使用 Android 的内容视图

Activity activity=(Activity) context;

并在 snackbar 中使用以获取视图

Snackbar.make(activity.findViewById(android.R.id.content),"Hello",BaseTransientBottomBar.LENGTH_LONG).show