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 AIDL的实例与原理

    解析Android AIDL的实例与原理

    为使应用程序之间能够彼此通信,Android提供了IPC(Inter Process Communication,进程间通信)的一种独特实现:AIDL(Android Interface Definition Language,Android接口定义语言)
    2021-06-06
  • Android贝塞尔曲线实现消息拖拽消失

    Android贝塞尔曲线实现消息拖拽消失

    这篇文章主要为大家详细介绍了Android贝塞尔曲线实现消息拖拽消失,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Android广播事件流程与广播ANR原理深入刨析

    Android广播事件流程与广播ANR原理深入刨析

    这篇文章主要介绍了Android广播事件流程与广播ANR原理,ANR应用程序未响应,当主线程被阻塞时,就会弹出如下弹窗,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可任意参考一下
    2022-10-10
  • 微信小程序 canvas开发实例及注意事项

    微信小程序 canvas开发实例及注意事项

    这篇文章主要介绍了微信小程序 wxcanvas开发实例及注意事项的相关资料,这里对微信canvas与H5中的canvas做对比,并说明注意事项,需要的朋友可以参考下
    2016-12-12
  • Android 组件Gallery和GridView示例讲解

    Android 组件Gallery和GridView示例讲解

    本文主要讲解Android 组件Gallery和GridView,这里详细介绍组件Gallery和GridView的知识要点,并附示例代码和实现效果图,有兴趣的小伙伴可以参考下
    2016-08-08
  • Android判断程序是否第一次启动

    Android判断程序是否第一次启动

    这篇文章主要为大家详细介绍了Android判断程序是否第一次启动的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android高仿京东垂直循环滚动新闻栏

    Android高仿京东垂直循环滚动新闻栏

    通过自定义的LinearLayout,并且textView能够循环垂直滚动,而且条目可以点击,显示区域最多显示2个条目,并且还有交替的属性垂直移动的动画效果,通过线程来控制滚动的实现
    2016-03-03
  • Android ListView仿微信聊天界面

    Android ListView仿微信聊天界面

    这篇文章主要为大家详细介绍了ListView仿微信聊天界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Android微信支付获取二次签名Sign的方法

    Android微信支付获取二次签名Sign的方法

    这篇文章主要介绍了Android微信支付获取二次签名Sign的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android UI更新的几种方法总结

    Android UI更新的几种方法总结

    这篇文章主要介绍了Android UI更新的几种方法总结的相关资料,这里对Android UI 的几种更新列出了,并附实例代码,需要的朋友可以参考下
    2016-11-11

最新评论