Android RecyclerView添加Header头部
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; } } }
代码运行结果:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android开发常用框架汇总
作为一名程序猿,好的工具会让你在搬运工的道路上越走越远。以下框架是AC在开发过程中经常会使用到的一些好的框架。列在这里做一个小小的总结,包含但不限于此。 响应式编程 RxJava https://github.com/ReactiveX/RxJava RxAndroid https://github.com/ReactiveX/RxAndroid 消息通信 EventBus 组件间的消息通信 https://github.com/greenrobot/EventBus 注解框架 butterknife View注解框架 https://github.com/JakeWharton/butterknife dagger Android和Java的依赖注入框架 https://github.com/google/dagger 数据解析 Gson https://github.com/google/gson fastjson https://github.com/alibaba/fastjson 数据库 Realm 移动数据库SQLite&ORM替代者 https://github....
- 下一篇
Android源码浅析(五)——关于定制系统,如何给你的Android应用系统签名
Android源码浅析(五)——关于定制系统,如何给你的Android应用系统签名 今天来点简单的我相信很多定制系统的同学都会有一些特定功能的需求,比如 修改系统时间 静默安装 执行某shell命令 这些对于正常的应用来说,是需要很多技巧性的东西来做的,因为他们没有权限,而我们做定制系统的 话,可以给我们的应用来系统签名,这样就拥有系统的权限了,那我们应该怎么做呢? 我们以执行某shell命令为课题来解释: 首先,我们要知道,一般的命令都是在system/bin下,我们可以看图 使用shell命令,比如ls之类的,我们可以直接执行 try { Runtime runtime = Runtime.getRuntime(); runtime.exec("ls"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 你会发现可以执行的,而且可以拿到返回值,通过返回一个Process,然后就可以拿到流了,这里不说,我们继续来看这个ls命令,如果你细心的话,你会发现,ls命令后面...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL8.0.19开启GTID主从同步CentOS8