BaseRecyclerHelper开发指南

序言

RecyclerView可以替换ListView和GridView.

BaseRecyclerHelper优化并简化了RecyclerView的使用.

特别说明

1.RecyclerView

强烈建议对RecyclerView有一定了解后,再使用BaseRecyclerHelper.

如果你对RecyclerView还不熟悉,请参考:

教程:

http://blog.csdn.net/lmj623565791/article/details/45059587

http://blog.csdn.net/skykingf/article/details/50827141

视频:

http://www.imooc.com/learn/424

http://www.imooc.com/learn/731

 

2.BaseRecyclerHelper

强烈建议对照官方demo进行学习

Github首页:

https://github.com/CymChad/BaseRecyclerViewAdapterHelper


 

开始使用

一.添加RecyclerView依赖

点击Structure,再点击右边绿色+号,添加recyclerview依赖



二.添加BaseRecyclerHelper依赖

网址:https://github.com/CymChad/BaseRecyclerViewAdapterHelper

步骤:

1.先在 build.gradle(Project:XXXX) 的 repositories 添加:

allprojects {
	repositories {
		maven { url "https://jitpack.io"}
	}
}

 


2.然后在 build.gradle(Module:app) 的 dependencies 添加:

dependencies {
	 compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:VERSION_CODE'
}


用真实发行版本号, 替换VERSION_CODE

版本号网址 https://github.com/CymChad/BaseRecyclerViewAdapterHelper/releases,用最新的就好了, 我现在用的是2.8.0

注意:两个gradle都必须要写,要不然无法加载成功。

 

三.最好添加这么一行代码,避免和xUtils冲突的bug(只是可能有冲突)

defaultConfig {
	useLibrary 'org.apache.http.legacy'
}


现在可以正式开始使用了!

三.使用方法

(一)普通使用
1.Activity代码
//先声明
Videovideo;//实体类
List<Video> list;//实体类集合
RecyclerViewrecyclerView;
VideoAdapteradapter;
 
public void initView(){
	recyclerView= (RecyclerView)view.findViewById(R.id.lv_video_tch);
	adapter =new  VideoAdapter(R.layout.item_video,list);//当前item布局
	recyclerView.setAdapter(adapter);//用setAdapter方法设置适配器
 
LinearLayoutManager linearLayoutManager =newLinearLayoutManager(this) {
	@Override
	public booleancanScrollVertically(){//这里是防止嵌套滑动不流畅
	return false;
  	}
};
recyclerView.setLayoutManager(linearLayoutManager);//设置recyclerview的显示方式,这里用ListView的方式显示
recyclerView.addItemDecoration(new DividerItemDecoration( getActivity(),DividerItemDecoration.HORIZONTAL));//简单分割线,可以暂时不用
}
 
public void getVideoList(){
	//…Xtuils获取数据
	for(…){
	//添加到用户List中
	list.add(video_tchToStu);
	//quickAdapter.notifyDataSetChanged();//用这个也可以,和listview的notifydataset一模一样
	adapter.notifyItemInserted(i);//用这个也可以,都是把数据添加到适配器中,这个是用for循环依次添加
	}
}
2.Adapter代码

适配器的代码比listview和recyclerview原始代码减少70%以上!!非常强大!

(1)需要注意的,如何拿到每个item内部的控件

if (item.tags.equals("1")){
	helper.setText(R.id.txv_tags,"天猫");
}else {
	//拿到控件
	helper.getView(R.id.txv_tags).setVisibility(View.GONE);
}

或者

Button bf = (Button) helper.getView(R.id.btn_video_more);
bf.setText(item.header);

 

(2)Adapter全部代码示例

1.适配器必须继承BaseQuickAdapter类,先写出来,然后ctrl+1自动重写convert()方法,和构造函数, BaseQuickAdapter有两个泛型类,第一个是你的实体类,第二个是BaseViewHolder.

 

2.构造方法用ctrl+1自动生成,第一个参数是你的Item布局,第二个参数是实体类集合数据

 

3.Convert()方法就是用来转化行布局内的控件的,两个参数helper和item,helper就是帮助类,item就是你的实体类集合的每一个对象


4.继承BaseQuickAdapter类,先写出来,然后ctrl+1或alt+回车自动重写convert()方法,和构造函数


5.converted()方法内通过setText()方法给item布局内的textview控件赋值!

public class videoAdapter extendsBaseQuickAdapter<Video,BaseViewHolder> {
	privateBitmapUtilsbitmapUtils;
	publicVideoAdapter (intlayoutResId,List<Video> data){
	super(layoutResId, data);
	bitmapUtils= Utils.getInstance();
}
 
@Override
protected void convert(BaseViewHolder helper, Videoitem) {
	helper.setText(R.id.txv_username_video_comment,item.username);
	helper.setText(R.id.txv_contentvideo,item.contentvideo);
	bitmapUtils.display(helper.getView(R.id.imgv_avatar_video_comment),item.avatar);
	}
    }
}
3.按钮点击事件

非常方便,再也不用像listview一样声明很多接口了!

(1)     Item的点击事件

直接在Activity里写,如果复制粘贴报红了,把@override的部分删了,再ctrl+1重新生成一下就好了!以下同理. 

(方法:通过mRecyclerView.addOnItemTouchListener,传入OnItemClickListener)

mRecyclerView.addOnItemTouchListener(newOnItemClickListener( ){
	@Override
	public voidSimpleOnItemClick(BaseQuickAdapter adapter, View view, int position) {
        	 //你的业务逻辑代码
	}
});


(2)Item的长按事件

(方法:通过

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值