自定义类的小吃店未显示

时间:2018-06-23 15:12:35

标签: android recycler-adapter snackbar

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设置操作。但是,当我删除项目时,什么也没发生。小吃店没有出现。我不确定我是否可以正确设置视图,但是我不知道该怎么做

2 个答案:

答案 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)

我认为,不显示小吃店有两个可能的原因。

  1. 其他视图的高度过高,无法显示快餐栏。检查活动中所有视图的高度。
  2. 作为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
    
    }
    

我想发表评论并询问更多详细信息,但是由于我的声誉低下,我被禁止这样做。希望这些建议对您有用。