Android RecyclerView加载两种布局的方法

 更新时间:2017年02月08日 16:10:04   作者:龙_Alvin  
这篇文章主要为大家详细介绍了Android RecyclerView加载两种布局的方法,Adapter加载多套布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

当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()方法中进行相应的判断逻辑实现。

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

相关文章

  • Android编程实现在Bitmap上涂鸦效果

    Android编程实现在Bitmap上涂鸦效果

    这篇文章主要介绍了Android编程实现在Bitmap上涂鸦效果的方法,涉及Android界面布局,事件响应及Bitmap操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-12-12
  • Android LaunchMode四种启动模式详细介绍

    Android LaunchMode四种启动模式详细介绍

    这篇文章主要介绍了Android LaunchMode四种启动模式详细介绍的相关资料,这里对launchmode的使用方法进行了详解及启动模式的比较,需要的朋友可以参考下
    2016-12-12
  • Android中Notification的用法汇总

    Android中Notification的用法汇总

    这篇文章主要介绍了Android中Notification的用法汇总的相关资料,需要的朋友可以参考下
    2016-01-01
  • Android中的SQLite数据库简介

    Android中的SQLite数据库简介

    SQLite是Android系统采用的一种开源的轻量级的关系型的数据库。这篇文章主要介绍了Android中的SQLite数据库简介,需要的朋友可以参考下
    2017-03-03
  • android计算器实现两位数的加减乘除

    android计算器实现两位数的加减乘除

    这篇文章主要为大家详细介绍了android计算器实现两位数的加减乘除,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • AndroidStudio项目打包成jar的简单方法

    AndroidStudio项目打包成jar的简单方法

    JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,在eclipse中我们知道如何将一个项目导出为jar包,供其它项目使用呢?下面通过本文给大家介绍ndroidStudio项目打包成jar的简单方法,需要的朋友参考下吧
    2017-11-11
  • Android在kts中使用navigation及Args的方法

    Android在kts中使用navigation及Args的方法

    在Android项目中使用Kotlin脚本(kts)替代Groovy配置navigation和Args,需添加相关依赖,并在build.gradle中进行配置,文章详细介绍了如何在kts中使用navigation进行页面导航和参数传递,介绍了使用Bundle和Safe Args两种方式安全传递参数
    2024-10-10
  • Android组件之DrawerLayout实现抽屉菜单

    Android组件之DrawerLayout实现抽屉菜单

    DrawerLayout组件同样是V4包中的组件,也是直接继承于ViewGroup类,所以这个类也是一个容器类。接下来通过本文给大家介绍Android组件之DrawerLayout实现抽屉菜单,感兴趣的朋友一起学习吧
    2016-02-02
  • Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法

    Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法

    这篇文章主要介绍了Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法,涉及Android属性设置及activity操作的相关技巧,需要的朋友可以参考下
    2015-11-11
  • Android控制闪光灯的方法(打开与关闭)

    Android控制闪光灯的方法(打开与关闭)

    这篇文章主要介绍了Android控制闪光灯的方法,可实现闪光灯打开与关闭的效果,涉及Android操作Camera拍照闪光灯的相关技巧,需要的朋友可以参考下
    2016-01-01

最新评论