Android RecyclerView添加Header头部

Android RecyclerView不像以前的ListView那样直接添加头部,如果要给RecyclerView增加头部,则需要自己写或者使用第三方开源项目。
RecyclerViewHeader是github上的一个开源项目,旨在为Android RecyclerView增加头部,其在github上的项目主页是:https://github.com/blipinsk/RecyclerViewHeader
RecyclerViewHeader使用相对比较简单,写一个例子。
注意RecyclerViewHeader的布局文件写法:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" /> <com.bartoszlipinski.recyclerviewheader2.RecyclerViewHeader xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"> <TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_orange_light"
android:gravity="center"
android:text="zhang phil @ csdn"
android:textColor="@android:color/white" /> </com.bartoszlipinski.recyclerviewheader2.RecyclerViewHeader> </FrameLayout>

上层Java代码:

package zhangphil.app;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView; import com.bartoszlipinski.recyclerviewheader2.RecyclerViewHeader; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager); ItemAdapter adapter = new ItemAdapter();
recyclerView.setAdapter(adapter); //添加RecyclerView头部
RecyclerViewHeader header = (RecyclerViewHeader) findViewById(R.id.header);
header.attachTo(recyclerView);
} private class ItemViewHolder extends RecyclerView.ViewHolder {
public TextView text; public ItemViewHolder(View itemView) {
super(itemView);
text = (TextView) itemView.findViewById(android.R.id.text1);
}
} private class ItemAdapter extends RecyclerView.Adapter<ItemViewHolder> { @Override
public ItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(parent.getContext(), android.R.layout.simple_list_item_1, null);
ItemViewHolder holder = new ItemViewHolder(view);
return holder;
} @Override
public void onBindViewHolder(ItemViewHolder holder, int position) {
holder.text.setText(String.valueOf(position));
} @Override
public int getItemCount() {
return 20;
}
}
}

代码运行结果:

最新文章

  1. 游戏编程系列[1]--游戏编程中RPC协议的使用[2]--Aop PostSharp篇
  2. python爬虫学习(9) —— 一些工具和语法
  3. 妈妈再也不用担心别人问我是否真正用过redis了
  4. JQuery_表单选择器
  5. visor 发布
  6. R 在linux redhat 6.5的编译安装过程
  7. CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution (暴力枚举)
  8. [HB2014 Week5] Allot 人员分配
  9. Hrbustoj 2252 完全背包
  10. hadoop测试环境主配置简例
  11. ng-class的使用
  12. SpringBoot集成MyBatis的分页插件PageHelper(回头草)
  13. mysql更新某个字符串字段的部分内容
  14. 原来你是这样的Promise
  15. iOS 动态 Framework 对App启动时间影响实测
  16. ES系列目录
  17. compile php with openssl on mac osx error 填坑
  18. Python中的pass的作用
  19. 20145320《网络对抗》逆向及Bof基础实践
  20. python模块--time &amp; datetime

热门文章

  1. 集成 Union Pay - 银联支付
  2. override和overload的区别
  3. js 正则表达式 查找
  4. 为什么 Node.js 这么火,而同样异步模式 Python 框架 Twisted 却十几年一直不温不火?
  5. LZMA demo挑选使用备忘
  6. UVALive 6680 Join the Conversation
  7. 管理工具MongoVUE使用
  8. VS2010静态编译生成.exe可执行文件
  9. Memcached 及 Redis 架构分析和比较
  10. JSP中的EL