File tree Expand file tree Collapse file tree 1 file changed +18
-3
lines changed
Expand file tree Collapse file tree 1 file changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -24,7 +24,8 @@ HeaderViewAdapter可以对已有的RecyclerView.Adapter进行包装,使其具
2424```
2525
2626** 2、使用**
27- ```
27+ 你需要自己包装HeaderViewAdapter,并且用HeaderViewAdapter给列表添加头部和尾部。它可以包装所有的RecyclerView Adapter和适用于所有的RecyclerView。
28+ ``` java
2829 // 需要包装的adapter
2930 LinearAdapter adapter = new LinearAdapter (this );
3031
@@ -38,7 +39,21 @@ HeaderViewAdapter可以对已有的RecyclerView.Adapter进行包装,使其具
3839 // 设置Adapter
3940 recyclerView. setAdapter(headerViewAdapter);
4041```
41- 如果你的RecyclerView使用的是GridLayoutManager,那你需要使用框架里HeaderViewGridLayoutManager
42- ```
42+ 无论我们的RecyclerView使用什么LayoutManager,HeaderViewAdapter都需要保证列表的头部和尾部能占满一行,否则布局就会很难看。使用LinearLayoutManager的时候不需要做特殊的处理,HeaderViewAdapter也已经帮我们处理了StaggeredGridLayoutManager的情况。至于GridLayoutManager的情况,我在HeaderViewAdapter的库里提供了一个HeaderViewGridLayoutManager的子类。所以大家在使用GridLayoutManager的时候,应该使用HeaderViewGridLayoutManager。
43+ ``` java
4344 recyclerView. setLayoutManager(new HeaderViewGridLayoutManager (this , 2 , headerViewAdapter));
4445```
46+ 为了让我们的RecyclerView添加头部和尾部的时候,更接近于ListView的体验。所以我在库里提供了一个RecyclerView子类:HeaderRecyclerView。HeaderRecyclerView封装了对HeaderViewAdapter的所以操作,这使我们只需要操作HeaderRecyclerView,而无需直接跟HeaderViewAdapter打交道,这使得我们使用HeaderRecyclerView的时候就如同以前使用ListView一样。
47+ ``` java
48+ HeaderRecyclerView rvList = (HeaderRecyclerView ) findViewById(R . id. rv_list);
49+ // 这是普通的adapter
50+ GridAdapter adapter = new GridAdapter (this );
51+ rvList. setLayoutManager(new GridLayoutManager (this , 2 ));
52+ // 直接设置普通的adapter,不需要直接进行包装。
53+ rvList. setAdapter(adapter);
54+
55+ // 添加HeaderView和FooterView。直接操作HeaderRecyclerView。
56+ rvList. addHeaderView(headerView);
57+ rvList. addFooterView(footerView);
58+ ```
59+ 对HeaderViewAdapter的原理讲解和更多的介绍,请关注我的博客文章:[ Android 给RecyclerView添加头部和尾部] ( http://www.jianshu.com/p/45059108f3a7 ) 。谢谢!
You can’t perform that action at this time.
0 commit comments