/AdapterWrapper

A AdapterWrapper for RecyclerView .

Primary LanguageJava

AdapterWrapper

A AdapterWrapper for RecyclerView which can add Header/Footer or set EmptyView In a elegant way without modifying existed Adapter.

Usage

sample codes is shown below:

	//init your adatper
        MyAdapter adapter = new MyAdapter();

	//init a WrapperAdapter
        WrapperAdapter wrapper = new WrapperAdapter(adapter);
        TextView header = (TextView) LayoutInflater.from(this).inflate(R.layout.layout_header_1, null);
        //add a headerView
        wrapper.addHeaderView(header);
        //set a emptyView
        wrapper.setEmptyView(R.layout.layout_empty);

        recyclerView.setLayoutManager(new LinearLayoutManager(this));        
	//set a wrapper instead of adapter to recyclerView
        recyclerView.setAdapter(wrapper);

then when data in RecyclerView is modified, just invoke adapter.notifyDataSetChangd();

    private void addData() {
        List<String> datas = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            datas.add("Item " + i);
        }
        adapter.addData(datas);
        adapter.notifyDataSetChanged();
    }

    private void removeData() {
        adapter.setData(new ArrayList<String>());
        adapter.notifyDataSetChanged();
    }