返回顶部
首页 > 资讯 > 精选 >怎么在Android中使用ExpandableRecyclerView
  • 571
分享到

怎么在Android中使用ExpandableRecyclerView

android 2023-05-30 22:05:07 571人浏览 八月长安
摘要

怎么在Android中使用ExpandableRecyclerView?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用步骤:加入依赖compile 

怎么在Android中使用ExpandableRecyclerView?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

使用步骤:加入依赖

compile 'com.drawthink:expandable-recyclerview:0.0.3'

继承BaseViewHolder,实现自己的ViewHolder

1 在构造函数中初始化你的View(包括GroupView,和childView).

2 分别实现以下两个方法,并在对应方法中返回对应Layout布局文件中根节点的ID。

public int getGroupViewResId()public int getChildViewResId()

示例代码:

public class ImageViewHolder extends BaseViewHolder {  public ImageView image;  public TextView tvTitle;    public ImageViewHolder(Context ctx, View itemView, int viewType) {    super(ctx,itemView, viewType);    image = (ImageView) itemView.findViewById(R.id.iv_image);    tvTitle = (TextView)itemView.findViewById(R.id.tv_title);  }    @Override  public int getGroupViewResId() {    return R.id.group;  }    @Override  public int getChildViewResId() {    return R.id.child;  }}

继承BaseRecyclerViewAdapter

public abstract class BaseRecyclerViewAdapter<T,S,VH extends BaseViewHolder> extends RecyclerView.Adapter<VH>

示例Adapter代码:

public class ImageAdapter extends BaseRecyclerViewAdapter<String,ImageBean,ImageViewHolder> {  private Context ctx;  private List datas;  private LayoutInflater mInflater;  public ImageAdapter(Context ctx, List<RecyclerViewData> datas) {    super(ctx, datas);    mInflater = LayoutInflater.from(ctx);    this.ctx = ctx;    this.datas = datas;  }  @Override  public void onBindGroupHolder(ImageViewHolder holder, int groupPos,int position, String groupData) {    holder.tvTitle.setText(groupData);  }  @Override  public void onBindChildpHolder(ImageViewHolder holder, int groupPos,int childPos,int position, ImageBean childData) {    holder.image.setBackgroundResource(childData.getResId());  }  @Override  public View getGroupView(ViewGroup parent) {    return mInflater.inflate(R.layout.title_item_layout,parent,false);  }  @Override  public View getChildView(ViewGroup parent) {    return mInflater.inflate(R.layout.item_image_layout,parent,false);  }  @Override  public ImageViewHolder createRealViewHolder(Context ctx, View view, int viewType) {    return new ImageViewHolder(ctx,view,viewType);  }}

完成以上两步之后,基本大工告成,由于ExpandableRecyclerView的数据是要分组的,所以提供了RecyclerViewData来封装

public RecyclerViewData(T groupData, List<S> childDatas,boolean isExpand)

那接下来看下数据具体是怎样封装的。

mDatas = new ArrayList<>();    List<ImageBean> bean1 = new ArrayList<>();    List<ImageBean> bean2 = new ArrayList<>();    List<ImageBean> bean3 = new ArrayList<>();    // 每个子列表长度可以不相同    bean1.add(new ImageBean("Dog", R.mipmap.dog));    bean1.add(new ImageBean("Dog", R.mipmap.dog));    bean2.add(new ImageBean("Cat", R.mipmap.cat));    bean3.add(new ImageBean("Bird", R.mipmap.bird));    mDatas.add(new RecyclerViewData("Dog", bean1, true));    mDatas.add(new RecyclerViewData("Cat", bean2, true));    mDatas.add(new RecyclerViewData("Bird", bean3, true));

所有工作以完成,现在你可以象平常使用Adapter,RecyclerView一样,来愉快的写代码了。

注意:在对元数据mDatas进行增删操作时,要调用adapter.notifyRecyclerViewData();否则会造成数据索引错乱的问题。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 怎么在Android中使用ExpandableRecyclerView

本文链接: https://lsjlt.com/news/221700.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Android中使用ExpandableRecyclerView
    怎么在Android中使用ExpandableRecyclerView?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用步骤:加入依赖compile ...
    99+
    2023-05-30
    android
  • EditText怎么在Android中使用
    本篇文章给大家分享的是有关EditText怎么在Android中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Android是什么Android是一种基于Linux内核的自...
    99+
    2023-06-14
  • AppWidget怎么在Android中使用
    AppWidget怎么在Android中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、在AndroidManifest.xml中声明一个AppWidge...
    99+
    2023-06-14
  • BroadcastReceiver怎么在Android中使用
    这篇文章给大家介绍 BroadcastReceiver怎么在Android中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系统,主要...
    99+
    2023-06-14
  • ViewBinding怎么在Android中使用
    ViewBinding怎么在Android中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。ViewBinding 有什么作用过于冗余findViewById...
    99+
    2023-06-15
  • RecyclerView怎么在Android中使用
    RecyclerView怎么在Android中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先ListView与RecyclerView两者非常相似,两者提供view都是...
    99+
    2023-05-30
    recyclerview android
  • 怎么在Android中使用menu
    这篇文章将为大家详细讲解有关怎么在Android中使用menu,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。①在res下的menu中创建file_menu.xml:<xml ...
    99+
    2023-05-30
    android menu
  • Notification怎么在Android中使用
    这期内容当中小编将会给大家带来有关Notification怎么在Android中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。用法首先我们需要一个NotificationManager来对通知进行管理...
    99+
    2023-05-30
    android notification
  • SharedPreferences怎么在Android中使用
    这篇文章给大家介绍SharedPreferences怎么在Android中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MainActivity:public class SharedPrefe...
    99+
    2023-05-30
    android sharedpreferences
  • StringBuffer怎么在Android中使用
    StringBuffer怎么在Android中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、StringBuffer对象的初始化StringBuffer对象的初始化不像...
    99+
    2023-05-30
    android stringbuffer
  • CheckBox怎么在Android中使用
    CheckBox怎么在Android中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。activity_main.xml<xml versio...
    99+
    2023-05-30
    android checkbox
  • Popupwindow怎么在Android应用中使用
    这期内容当中小编将会给大家带来有关Popupwindow怎么在Android应用中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。第一步:private PopupWindow mPopupWindow...
    99+
    2023-05-31
    popupwindow android roi
  • LayoutInflater怎么在Android 应用中使用
    今天就跟大家聊聊有关LayoutInflater怎么在Android 应用中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。LayoutInflater解析前言:在Android中...
    99+
    2023-05-31
    android layoutinflater flat
  • Retrofit框架怎么在Android中使用
    Retrofit框架怎么在Android中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系...
    99+
    2023-06-14
  • ListView控件怎么在Android中使用
    本篇文章给大家分享的是有关ListView控件怎么在Android中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、ListView的简单用法首先新建一个ListView...
    99+
    2023-05-30
    android listview
  • 怎么在Android中使用Spinner控件
    今天就跟大家聊聊有关怎么在Android中使用Spinner控件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、使用方法在layout中创建Spinner控件<Spinner...
    99+
    2023-05-30
    android spinner
  • 怎么在Android中使用线程池
    本篇文章为大家展示了怎么在Android中使用线程池,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1 、newCachedThreadPool这种线程池比较灵活,也就是说它的池里的线程数量并不是固定...
    99+
    2023-05-30
    android 线程池
  • ViewDragHelper怎么在Android项目中使用
    本篇文章为大家展示了 ViewDragHelper怎么在Android项目中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。ViewDragHelper是support.v4下提供的用于处理拖拽滑...
    99+
    2023-05-30
    android viewdraghelper
  • mvp模式怎么在Android中使用
    这篇文章将为大家详细讲解有关mvp模式怎么在Android中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Control...
    99+
    2023-05-31
    android mvp模式 roi
  • ContentProvider怎么在Android项目中使用
    ContentProvider怎么在Android项目中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、概念及说明ContentProvider定义:内容提供者是一个An...
    99+
    2023-05-31
    android contentprovider roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作