Android RecyclerView加载两种布局的方法

发布时间 - 2026-01-10 22:56:11    点击率:

当RecyclerView有下拉刷新时,有时候设计图上,体现出来的列表有头部布局,这可以通过Adapter实现加载多套布局就可以,这里以加载两种布局为例说明。

先看看Adapter的代码:

import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

import com.alvin.R;

import java.util.ArrayList;
import java.util.List;

public class MainListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
 private List<Data> list;
 private ArrayList<ItemEntity> jdList;
 private Context context;

 public MainListAdapter(List<Data> list,ArrayList<ItemEntity> jdList, Context context) {
  this.list = list;
  this.jdList = jdList;
  this.context = context;
 }
 @Override
 public int getItemViewType(int position) {
  return list.get(position).getShowType();
 }
 @Override
 public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  if(viewType==1){
   View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_header_main_list,parent,false);
   return new HeaderHolder(view);
  }else{
   View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list_main,parent,false);
   return new ViewHolderItem(view);
  }
 }

 @Override
 public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

  if(holder instanceof HeaderHolder){
   final HeaderHolder headerHolder = (HeaderHolder) holder;
   //TODO 实现相关逻辑
  }else if(holder instanceof ViewHolderItem){

  }
 }

 @Override
 public int getItemCount() {
  return list.size();
 }

 private class HeaderHolder extends RecyclerView.ViewHolder{

  HeaderHolder(View itemView) {
   super(itemView);
  }
 }

 private class ViewHolderItem extends RecyclerView.ViewHolder{

  ViewHolderItem(View itemView) {
   super(itemView);
  }
 }


}

getItemViewType()这个返回的是列表当前布局类型,在Adapter加载布局时,对齐进行判断,也就是onBindViewHolder()方法中进行相应的判断逻辑实现。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# RecyclerView加载不同布局  # Adapter加载多套布局  # RecyclerView加载两种布局  # Android RecyclerView实现多种item布局的方法  # Android RecyclerView显示Item布局不一致解决办法  # Android RecyclerView加载不同布局简单实现  # Android开发中RecyclerView模仿探探左右滑动布局功能  # Android RecyclerView布局就这么简单  # Android RecyclerView网格布局示例解析  # Android列表RecyclerView排列布局  # Android RecyclerView多类型布局卡片解决方案  # Android实现RecyclerView嵌套流式布局的详细过程  # 加载  # 的是  # 两种  # 为例  # 这可  # 大家多多  # 就可以  # 图上  # 多套  # BaseAdapter  # alvin  # util  # ViewGroup  # LayoutInflater  # view 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  如何快速搭建高效服务器建站系统?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  ,网页ppt怎么弄成自己的ppt?  音响网站制作视频教程,隆霸音响官方网站?  Laravel如何使用Collections进行数据处理?(实用方法示例)  如何在阿里云高效完成企业建站全流程?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  UC浏览器如何设置启动页 UC浏览器启动页设置方法  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  免费视频制作网站,更新又快又好的免费电影网站?  手机软键盘弹出时影响布局的解决方法  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel Docker环境搭建教程_Laravel Sail使用指南  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  高端云建站费用究竟需要多少预算?  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  Laravel如何实现本地化和多语言支持?(i18n教程)  如何用好域名打造高点击率的自主建站?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  bing浏览器学术搜索入口_bing学术文献检索地址  JavaScript如何实现错误处理_try...catch如何捕获异常?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  图册素材网站设计制作软件,图册的导出方式有几种?  JS经典正则表达式笔试题汇总  Android自定义控件实现温度旋转按钮效果  深圳网站制作培训,深圳哪些招聘网站比较好?  微信小程序 五星评分(包括半颗星评分)实例代码  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel如何使用.env文件管理环境变量?(最佳实践)  北京企业网站设计制作公司,北京铁路集团官方网站?  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  iOS验证手机号的正则表达式  Laravel怎么清理缓存_Laravel optimize clear命令详解  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  电商网站制作价格怎么算,网上拍卖流程以及规则?  JS去除重复并统计数量的实现方法  JavaScript Ajax实现异步通信  Android 常见的图片加载框架详细介绍