RecyclerView添加头布局

来源:互联网 发布:etm软件会员 编辑:程序博客网 时间:2024/05/22 15:07
添加依赖
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
======================================================================
public class MainActivity extends AppCompatActivity {    private RecyclerView recyclerView;    private List<String> list;    private MyRlAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        recyclerView = (RecyclerView) findViewById(R.id.main_Rl);        recyclerView.setLayoutManager(new LinearLayoutManager(this));        list = new ArrayList<>();        for (int i = 0; i < 50; i++) {            list.add("想个名字真难" + i);        }        adapter = new MyRlAdapter();        TextView textView = new TextView(this);        textView.setText("这是第一个头布局");        TextView textView1 = new TextView(this);        textView1.setText("这是第二个头布局");        TextView textView2 = new TextView(this);        textView2.setText("这是第三个头布局");        adapter.addHeader(textView);        adapter.addHeader(textView1);        adapter.addHeader(textView2);        recyclerView.setAdapter(adapter);    }    class MyRlAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {        @Override        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            if (viewType == HEADER_TYPE) {                View view = View.inflate(MainActivity.this, R.layout.rv_header, null);                MyHeaderViewHolder headerViewHolder = new MyHeaderViewHolder(view);                return headerViewHolder;            } else {                View view = View.inflate(MainActivity.this, R.layout.rv_item, null);                MyViewHolder myViewHolder = new MyViewHolder(view);                return myViewHolder;            }        }        @Override        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {            if (holder instanceof MyHeaderViewHolder) {                if (((MyHeaderViewHolder) holder).layout.getChildCount() == 0) {                    ((MyHeaderViewHolder) holder).layout.addView(headerList.get(position));                }            } else {                ((MyViewHolder) holder).textView.setText(list.get(position - headerList.size()));            }        }        @Override        public int getItemCount() {            return list.size() + headerList.size();        }        class MyViewHolder extends RecyclerView.ViewHolder {            TextView textView;            public MyViewHolder(View itemView) {                super(itemView);                textView = itemView.findViewById(R.id.item_tv);            }        }        class MyHeaderViewHolder extends RecyclerView.ViewHolder {            LinearLayout layout;            public MyHeaderViewHolder(View itemView) {                super(itemView);                layout = itemView.findViewById(R.id.Ll_header);            }        }        List<View> headerList = new ArrayList<View>();        private final static int HEADER_TYPE = 0;        private final static int ITEM_TYPE = 1;        @Override        public int getItemViewType(int position) {            if (position < headerList.size()) {                return HEADER_TYPE;            } else {                return ITEM_TYPE;            }        }        public void addHeader(View view) {            if (headerList != null) {                headerList.add(view);                notifyDataSetChanged();            }        }    }}

阅读全文
0 0
原创粉丝点击