MyActivity coord.xml:
<CoordinatorLayout>
id:coordID
<RelativeL>
...
<FAB>
RVAdapter.java
...
@Override
public void onItemDismiss(int position) {
...
notifyItemRemoved(position);
LayoutInflater inflater = (LayoutInflater) MyActivity.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.coord, null);
Snackbar.make(v.findViewById(R.id.coordID), "TEXT", Snackbar.LENGTH_LONG).show();
}
这是一种在自定义类(RVAdapter.java)中滑动从回收器视图列表中删除项目的方法,删除后,应显示Snackbar并为UNDO设置操作。但是,当我删除项目时,什么也没发生。小吃店没有出现。我不确定我是否可以正确设置视图,但是我不知道该怎么做
答案 0 :(得分:1)
感谢MikeM。我这样解决了它:
在MyActivity中添加
private static CoordinatorLayout mCoord;
mCoord = findViewById(R.id.coordID);
public static View getCoord() { return mCoord; }
和RVAdapter.java
Snackbar.make(MyActivity.getCoord(), ...
答案 1 :(得分:0)
我认为,不显示小吃店有两个可能的原因。
作为Snackbar.make()的参数 view 提供的活动参考可能不正确。如果是这种情况,那么我建议您通过构造函数将活动的引用传递给Adapter,然后将其存储如下。
public class MoviesAdapter extends RecyclerView.Adapter<MyViewHolder> {
private List<Movie> moviesList;
private MainActivity activity;
MoviesAdapter(MainActivity activity){
super();
this.activity = activity;
}
//continue your remaining work from here
}
我想发表评论并询问更多详细信息,但是由于我的声誉低下,我被禁止这样做。希望这些建议对您有用。