RecyclerView 横向列表 及 adapter 打造 item监听 改变元素属性
2018-03-08 17:10
543 查看
一、adapter代码如下:
二、activity中的使用方式如下:1.implements RecyclerHorizontalAdapter.OnItemClickListener
2.recyclerHorizontalAdapter.setOnItemClickListener(this);
3.
public class RecyclerHorizontalAdapter extends RecyclerView.Adapter<RecyclerHorizontalAdapter.MyViewHolder > implements View.OnClickListener{ private Context mContext; private List<CarModelType> items; private int checkPosition; public OnItemClickListener onItemClickListener; public interface OnItemClickListener{ void onItemClick(int position, View itemView); } public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener = onItemClickListener; } public RecyclerHorizontalAdapter(Context context, List<CarModelType> items){ this.mContext = context; this.items = items; } public int getCheckPosition() { return checkPosition; } public void setCheckPosition(int checkPosition) { this.checkPosition = checkPosition; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //负责创建视图 View view = LayoutInflater.from(mContext).inflate(R.layout.item_make_year, null); //将全局的监听传递给holder MyViewHolder holder = new MyViewHolder(view); return holder; } @Override public void onClick(View view) { int position = (int) view.getTag(); if(null != onItemClickListener){ onItemClickListener.onItemClick(position, view); } } @Override public void onBindViewHolder(MyViewHolder holder, int position) { CarModelType item = items.get(position); holder.SetContent(item); holder.itemView.setTag(position); if(position == getCheckPosition()){ holder.yearName.setTextColor(mContext.getResources().getColor(R.color.deep_sky_blue)); holder.cutLine.setBackgroundColor(mContext.getResources().getColor(R.color.deep_sky_blue)); }else{ holder.yearName.setTextColor(mContext.getResources().getColor(R.color.montana)); holder.cutLine.setBackgroundColor(mContext.getResources().getColor(R.color.white)); } } @Override public int getItemCount() { return null != items ? items.size() : 0; } public class MyViewHolder extends RecyclerView.ViewHolder{ public TextView yearName; public View cutLine; public MyViewHolder(View itemView) { super(itemView); yearName = (TextView) itemView.findViewById(R.id.car_year_name); cutLine = (View) itemView.findViewById(R.id.cut_line); //将全局的监听赋值给接口 itemView.setOnClickListener(RecyclerHorizontalAdapter.this); } public void SetContent(CarModelType item ){ yearName.setText(item.getName()); } } }
二、activity中的使用方式如下:1.implements RecyclerHorizontalAdapter.OnItemClickListener
2.recyclerHorizontalAdapter.setOnItemClickListener(this);
3.
private void initView() { recyclerHorizontal = (RecyclerView) findViewById(R.id.recycler_horizontal);//款型类别列表 LinearLayoutManager mLayoutManage = new LinearLayoutManager(this);//线性布局管理器 mLayoutManage.setOrientation(LinearLayoutManager.HORIZONTAL);// 设置 recyclerView 布局方式为横向布局 recyclerHorizontal.setLayoutManager(mLayoutManage); recyclerHorizontalAdapter = new RecyclerHorizontalAdapter(this, items); recyclerHorizontal.setAdapter(recyclerHorizontalAdapter); }4.
@Override public void onItemClick(int position, View itemView) { //拿适配器调用适配器内部自定义好的setCheckPosition方法(参数写点击事件的参数的position) recyclerHorizontalAdapter.setCheckPosition(position); //不要忘记刷新适配器 recyclerHorizontalAdapter.notifyDataSetChanged(); }
相关文章推荐
- Android客户端之“微服私访”App的系统学习(七)XRecyclerView快速实现列表界面+自定义Search输入框,软键盘搜索按钮监听+TextView部分样式改变
- Recyclerview列表,item嵌套横向Gridview 解决滑动冲突,数据加载问题
- RecyclerView.Adapter的某个item中EditText的输入后所有列表中Editetext全部被修改的问题
- RecyclerView横向滑动监听,判断是否滑动到了最后一个Item
- 为RecyclerView打造通用Adapter 让RecyclerView更加好用
- (更新版)Android VideoPlayer 在滚动列表实现item视频播放(ListView控件和RecyclerView)
- Android-Bug:RecyclerView的item不能横向充满的问题
- RecyclerView中的item的match_parent属性失效问题解决方案。
- RecyclerView的item监听
- 打造最强RecyclerView Item侧滑菜单 长按拖拽Item 滑动删除Item
- 打造最强RecyclerView Item侧滑菜单 长按拖拽Item 滑动删除Item
- 为RecyclerView打造通用Adapter 让RecyclerView更加好用
- android开发游记:ItemTouchHelper 使用RecyclerView打造可拖拽的GridView
- 【Android 仿微信通讯录 导航分组列表-下】自定义View为RecyclerView打造右侧索引导航栏IndexBar
- Android RecyclerView单点、批量数据元素项目item的增加、删除和移动
- 从源码来看ItemTouchHelper实现RecyclerView列表的拖拽和侧滑
- Andriod 自定义 RecyclerView 打造超强 Gallery效果 横向滑动 完整实例源码
- RecyclerView更全解析之 - 打造通用的万能Adapter
- RecyclerView——滑动监听,判断是否滑动到了最后一个item
- RecycleView+CardView实现卡片式列表(附带Item回调监听)