在Android的项目中。须要大量的列表组件来显示数据。在之前的项目中一直使用的是ListView 组件,可是在最新的V7包中出现了能后替代ListView的组件RecycleView。

所以在新的项目中使用了大量的RecycleView来替代ListView。

在使用RecycleView的时候。发现做了大量的反复操作。所以对RecycleView进行了简单的封装。方便在项目中视使用。

封装的操作主要是针对RecycleViewAdapter的封装,详细的功能例如以下:

  1. 能够加入多个头视图、尾视图
  2. 能够设置默认的切割线
  3. 能够隐藏第一个、第二个头视图的切割线
  4. 简化适配器中的方法
  5. 为ItemView设置点击事件
封装的代码已上传 GitHub,想要使用的能够下载,兴许会依据项目中的需求。不断加入新的功能。



详细的使用方式例如以下:


ArrayList<String> data = new ArrayList<>();

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for (int i = 0; i < 100; i++) {
data.add("Item" + i);
}
RecyclerView mainView = (RecyclerView) findViewById(R.id.mianView); WGAdapter adapter = new WGAdapter(this, data, android.R.layout.simple_list_item_1);
mainView.setAdapter(adapter); ImageView headerView = new ImageView(this);
headerView.setImageResource(R.mipmap.ic_launcher); adapter.addHeaderView(headerView); //加入头视图 Button footerView = new Button(this);
footerView.setText("load");
adapter.addFooterView(footerView); //加入尾视图 WanItemDecoration item = new WanItemDecoration(this, WanItemDecoration.VERTICAL_LIST);
//item.setIsShowSecondItemDecoration(false); //不显示第一行 切割线
item.setIsShowFirstItemDecoration(false); //不显示第二行 切割线
item.setMarginLeftDP(10); //切割线左边距
item.setMarginRightDP(10); //切割线右边距 mainView.addItemDecoration(item); //加入切割线 mainView.setLayoutManager(new LinearLayoutManager(this)); adapter.setOnItemClickListener(this); //设置点击事件 } @Override
public void onItemClickListener(int posotion) {
Toast.makeText(this, data.get(posotion), Toast.LENGTH_LONG).show();
} class WGAdapter extends WanAdapter<String> { protected WGAdapter(Context context, List<String> mDatas, int itemLayoutId) {
super(context, mDatas, itemLayoutId);
} /**
* @param holder itemHolder
* @param item 每一Item显示的数据
*/
@Override
public void convert(WanViewHolder holder, String item) {
//holder.setText(android.R.id.text1, item);
//或者
TextView text = holder.getView(android.R.id.text1);
text.setText(item);
}
}


注意:假设要定义切割线的样式,须要加入属性:
 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- ################################################ -->
<!-- 切割线的样式有这里定义。 一般都是Drawable -->
<item name="android:listDivider">@drawable/divider</item>
</style>


增强版的RecycleViewAdapter,能够直接使用的更多相关文章

  1. 将表里的数据批量生成INSERT语句的存储过程 增强版

    将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...

  2. 最新GHOST XP系统下载旗舰增强版 V2016年

    系统来自:系统妈:http://www.xitongma.com 深度技术GHOST xp系统旗舰增强版 V2016年3月 系统概述 深度技术ghost xp系统旗舰增强版集合微软JAVA虚拟机IE插 ...

  3. 最新深度技术GHOST XP系统旗舰增强版 V2016年

    来自系统妈:http://www.xitongma.com 深度技术GHOST xp系统旗舰增强版 V2016年 系统概述 深度技术ghost xp系统旗舰增强版集合微软JAVA虚拟机IE插件,增强浏 ...

  4. WinNTSetup v3.8.7 正式版绿色增强版

    最强系统安装利器:WinNTSetup 现已更新至 v3.8.7 正式版!这次更新修复调整了诸多问题,新版非常好用接近完美!WinNTSetup 现在已经自带BCDBoot 选项,并且完全支持Wind ...

  5. 将表里的数据批量生成INSERT语句的存储过程 继续增强版

    文章继续 桦仔兄的文章 将表里的数据批量生成INSERT语句的存储过程 增强版 继续增强... 本来打算将该内容回复于桦仔兄的文章的下面的,但是不知为何博客园就是不让提交!.... 所以在这里贴出来吧 ...

  6. CentOS6.5安装Tab增强版:bash-completion

    CentOS6.5安装Tab增强版:bash-completion,可补全命令参数: 因为CentOS官方源并不带有bash-completion的包,所以,为了可用yum安装,增加epel的源, 首 ...

  7. 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版

    <zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...

  8. zw版_zw中文增强版Halcon官方Delphi例程

    [<zw版·delphi与halcon系列原创教程>zw版_zw中文增强版Halcon官方Delphi例程 源码下载:http://files.cnblogs.com/files/ziwa ...

  9. office 2016 专业增强版 和 visio 2016 专业版 下载安装(附带激活工

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://babyshen.blog.51cto.com/8405584/1697910 o ...

随机推荐

  1. ubuntu14.04安装搜狗拼音以及Google-chrome

    安装搜狗拼音 1.进入https://pinyin.sogou.com/linux/选择合适版本下载: 2.直接打开deb包进行安装: 3.安装完成后,打开系统设置中语言支持选项,在键盘输入方式系统中 ...

  2. ajax动态刷新下拉框

    动态post,避免直接给页面传输大量数据 /** * ajax通过商品刷新供应商 * by_kangyx * @throws IOException */ @RequestMapping(params ...

  3. Hive 启动报错

    java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected at jl ...

  4. Java设计模式学习三-----工厂模式

    工厂模式 工厂模式(Factory Pattern)是Java中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,创建对象时不会对客户端暴露创建逻 ...

  5. js--进阶知识点

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. IOS 自动布局-UIStackPanel和UIGridPanel(四)

    为什么说scrollview的自动化布局是难点? 对scrollview做自动化布局,无非就是想对scrollview里面的subviews来做自动化布局.但是scrollview里面的subview ...

  7. Course Machine Learning Note

    Machine Learning Note Introduction Introduction What is Machine Learning? Two definitions of Machine ...

  8. Leetcode 365.水壶问题

    水壶问题 有两个容量分别为 x升和 y升的水壶以及无限多的水.请判断能否通过使用这两个水壶,从而可以得到恰好 z升的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水. 你允许: 装满 ...

  9. 【Android】SharedPreference存储数据

    SharedPreference存储数据 使用SharedPreference保存数据  putString(key,value) 使用SharedPreference读取数据  getString( ...

  10. 【Android】监听viewpager子页面里面的Button按钮

    最近做项目遇到Viewpager+Fragment滑动页面,要监听子页面中的按钮,在网上查了些解决办法: 办法一: 这种方法是在适配器初始化中进行监听,有人亲测通过,但是我继承FragmentPage ...