• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

android - 如何使用 RecycleView 显示分层数据结构?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 21:57:56 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在 iOS 中,如果您的数据结构有 两级、'sections'、'rows',那么 UITableView 适合呈现数据。它有两个委托(delegate)方法:

numberOfSectionsInTableView(tableView: UITableView) -> Int    
tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int

第一种方法询问部分的数量,第二种方法询问某个部分中存在多少行。

Android 中是否存在这种方法?

enter image description here



Best Answer-推荐答案


RecyclerView.Adapter 支持多种开箱即用的 View 类型。您要在任何特定位置显示哪种项目类型取决于您。您可以轻松地使用它来创建部分,例如,如果您定义了两个项目类型 TYPE_HEADER 和 TYPE_ITEM:

@Override
public int getItemViewType(int position) {
    if (isHeader(position)) {
        return TYPE_HEADER;
    } else {
        return TYPE_ITEM;
    }
}

然后,您可以使用 onCreateViewHolder 来膨胀适当的布局,并使用 onBindViewHolder 来使用它。

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == TYPE_HEADER) {
        View v = ... ; // inflate here
        return new HeaderViewHolder(v);
    } else {
        View v = ... ; // inflate here
        return new ItemViewHolder(v);
    }    
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    if (holder instanceof HeaderViewHolder) {
        // handle header
    } else if (holder instanceof ItemViewHolder {
        // handle item
    }
}

您可以使用您选择的数据结构。我更喜欢使用我自己实现的树状结构,或者只是简单的 ArrayList 和 instanceof 来检测项目是标题还是内容。

关于android - 如何使用 RecycleView 显示分层数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39228288/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap