RecyclerView最佳实践

来源:互联网 发布:合肥工业大学网络视频 编辑:程序博客网 时间:2024/06/10 22:08

添加空布局

private class EmptyStateAdapter extends RecyclerView.Adapter<MyViewHolder> {        private static final int SIMPLE_ITEM = 1;        private static final int EMPTY_ITEM = 2;        private int itemCount = 0;        @Override        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            View itemView;            switch (viewType) {                case SIMPLE_ITEM:                    itemView = LayoutInflater.from(EmptyActivity.this)                            .inflate(R.layout.simple_item, parent, false);                    return new MyViewHolder(itemView);                case EMPTY_ITEM:                default:                    itemView = LayoutInflater.from(EmptyActivity.this)                            .inflate(R.layout.empty_item, parent, false);                    return new MyViewHolder(itemView);            }        }        @Override        public void onBindViewHolder(final MyViewHolder holder, int position) {            switch (holder.getItemViewType()) {                case SIMPLE_ITEM:                    holder.textView.setText("Item nr " + (position + 1) + ". Tap to remove.");                    holder.itemView.setOnClickListener(new View.OnClickListener() {                        @Override                        public void onClick(View v) {                            int itemPosition = holder.getAdapterPosition();                            itemCount--;                            notifyItemRemoved(itemPosition);                            if (itemCount == 0) {                                notifyItemInserted(0);                            }                        }                    });                    break;                case EMPTY_ITEM:                    holder.refreshButton.setOnClickListener(new View.OnClickListener() {                        @Override                        public void onClick(View v) {                            notifyItemRemoved(0);                            itemCount = 10;                            notifyItemRangeInserted(0, 10);                        }                    });                    break;            }        }        @Override        public int getItemViewType(int position) {            return itemCount == 0 ? EMPTY_ITEM : SIMPLE_ITEM;        }        @Override        public int getItemCount() {            return itemCount == 0 ? 1 : itemCount;        }    }
原创粉丝点击