如何在RecyclerView.Adapter中获取View for Snackbar?

时间:2015-07-07 03:12:05

标签: android android-recyclerview

我正在实施滑动并在此article的帮助下拖动RecyclerView。在删除项目时,我想显示SnackBar,但显示SnackBar需要查看。我不知道如何在View的功能中获得RecyclerAdapter

我的代码:

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

编辑:我的问题与this question不同。我在实现SwipetoDismiss方面没有任何问题。我已经成功实现了它。但我想显示一个SnackBar,以便用户可以进行修改和撤消。我在显示SnackBar时没有实现onSwiped()的问题。

2 个答案:

答案 0 :(得分:7)

修改您的方法并将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);
    }

答案 1 :(得分:0)

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

Activity activity=(Activity) context;

并在小吃店中使用以获取视图

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