如何将ALWAYS作为recyclerview的第一个元素?

时间:2016-11-03 13:20:39

标签: android android-recyclerview

我想从recyclerview中删除特定项目(FIRST ITEM!)。

这不是问题:

//items variable is my Arraylist
items.remove(0);

当我看到这个项目时,它正常工作。但是当我滚动时,recyclerview会自动更新,如果我滚动则尝试删除项目而不是第一项(0)。什么是代码,在任何情况下删除第一项?

谢谢!

2 个答案:

答案 0 :(得分:0)

private List<Item> mItems;
private MyAdapter mAdapter;

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.cell, parent, false));
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        // ... On Bind
    }

    @Override
    public int getItemCount() {
        return mItems.size();
    }

    // View holder class to save view elements
    class ViewHolder extends RecyclerView.ViewHolder {
        // ...
        public ViewHolder(View itemView) {
            super(itemView);
            // ...
        }
    }
}

private void removeFirstItem() {
    mItems.remove(0);
    mAdapter.notifyDataSetChanged();
}

或使用notifyItemRemoved(position)删除动画。

答案 1 :(得分:0)

我想你可以阅读这个问题的答案Get visible items in RecyclerView

此外,在创建活动之前无法调用notifyItemRemoved和其他通知方法,否则您将收到错误“当RecyclerView正在计算布局或滚动时无法调用此方法”