当前位置: 首页 > 编程笔记 >

Android RecyclerView加载两种布局的方法

池照
2023-03-14
本文向大家介绍Android RecyclerView加载两种布局的方法,包括了Android RecyclerView加载两种布局的方法的使用技巧和注意事项,需要的朋友参考一下

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

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

 类似资料:
  • 问题内容: 我有称为的布局,并且将方向设置为纵向。我也为Honeycomb设计了这种布局,并将其放置在文件夹中,但是我只想在横向使用 in 。 现在,该怎么办? 谢谢 问题答案: 您可以将其放置在中,然后仅以横向使用。 请参阅支持多屏幕(使用配置限定符) Android支持多个配置限定符,可让您控制系统如何根据当前设备屏幕的特征选择备用资源。配置限定符是一个字符串,您可以将其附加到Android项

  • 本文向大家介绍动态加载JavaScript文件的两种方法,包括了动态加载JavaScript文件的两种方法的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要为大家详细介绍了动态加载JavaScript文件的两种方法,感兴趣的小伙伴们可以参考一下 第一种便是利用ajax方式,把script文件代码从背景加载到前台,而后对加载到的内容经过eval()实施代码。第二种是,动静创建一个script标签

  • 本文向大家介绍列举几种瀑布流布局的方法相关面试题,主要包含被问及列举几种瀑布流布局的方法时的应答技巧和注意事项,需要的朋友参考一下 flex方法: .waterfall{ //从上到下 display: flex; flex-direction: row; } .column { //从左到右 display: flex; flex-direction: column; width: calc(1

  • 本文向大家介绍动态加载jQuery的两种方法实例分析,包括了动态加载jQuery的两种方法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了动态加载jQuery的两种方法。分享给大家供大家参考。具体如下: 第一种方法参考本站之前有人发的代码,增加了加载检测; 第二种方法来自去年的12306刷票脚本。 第一种方法: 第二种方法: 希望本文所述对大家的jquery程序设计有所帮助。

  • 本文向大家介绍JavaScript实现瀑布流布局的3种方式,包括了JavaScript实现瀑布流布局的3种方式的使用技巧和注意事项,需要的朋友参考一下 前言 今天逛闲鱼的时候观察到每一行的高度不是相同的,经了解才知道原来这是一种瀑布流布局,感觉挺有意思,于是决定研究一下,在网上也找了一些方案,实现瀑布流大概有3种方式。 一、JS 实现瀑布流 思路分析 1、瀑布流布局的特点是等宽不等高。 2、为了让

  • 本文向大家介绍Bootstrap三种表单布局的使用方法,包括了Bootstrap三种表单布局的使用方法的使用技巧和注意事项,需要的朋友参考一下 Bootstrap提供了三种表单布局:垂直表单,内联表单和水平表单  创建垂直或基本表单:  •·向父 <form> 元素添加 role="form"。  •·把标签和控件放在一个带有 class .form-group 的 <div> 中。这是获取最佳间