`
zhengaihua
  • 浏览: 21869 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

整个布局只有一个RecycleView

阅读更多
        LinearLayoutManager layoutManager1 = new LinearLayoutManager(getActivity());
        layoutManager1.setOrientation(OrientationHelper.VERTICAL);
        recybase.setLayoutManager(layoutManager1);
        baseAdapter = new BaseAdapter(lists, getActivity());

        recybase.setAdapter(baseAdapter);

 

package baseAdapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;

import bean.BeanHome;

/**
 * Created by Zhengaihua on 2016/11/16.
 */
public abstract class BaseViewHolder<T> extends RecyclerView.ViewHolder {
    public BaseViewHolder(View itemView) {
        super(itemView);
    }

    public abstract void setData(Context context, BeanHome.DataBean dataBean);
}

 

package viewholder;

import android.content.Context;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.bumptech.glide.Glide;

import baseAdapter.BaseViewHolder;
import bean.BeanHome;
import bwie.redbaby1.R;


/**
 * Created by Zhengaihua on 2016/11/16.
 */

/**
 * scrollview
 */
public class Type0Holder extends BaseViewHolder<BeanHome.DataBean.TagBean> {
    RecyclerView recyclerView;
    private BeanHome.DataBean.TagBean bean;

    public Type0Holder(View itemView) {
        super(itemView);

        recyclerView = (RecyclerView) itemView.findViewById(R.id.type0_recycle);
    }

    @Override
    public void setData(final Context context, final BeanHome.DataBean dataBean) {
        GridLayoutManager layoutManager = new GridLayoutManager(context, 1);
        layoutManager.setOrientation(GridLayoutManager.HORIZONTAL);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setAdapter(new RecyclerView.Adapter<ViewHolder0>() {

            @Override
            public ViewHolder0 onCreateViewHolder(ViewGroup parent, int viewType) {
                return new ViewHolder0(LayoutInflater.from(context).inflate(R.layout.typehaiwai0_item, parent, false));
            }

            @Override
            public void onBindViewHolder(ViewHolder0 holder, int position) {
                Glide.with(context).load("http://image1.suning.cn" + dataBean.getTag().get(position).getPicUrl()).into(holder.image);
            }

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

    class ViewHolder0 extends BaseViewHolder<BeanHome.DataBean> {
        ImageView image;

        public ViewHolder0(View itemView) {
            super(itemView);
            image = (ImageView) itemView.findViewById(R.id.imagetypehaiwai0);
        }

        @Override
        public void setData(Context context, BeanHome.DataBean dataBean) {


        }
    }


}

 

package viewholder;

import android.content.Context;
import android.view.View;
import android.widget.ImageView;

import com.bumptech.glide.Glide;

import baseAdapter.BaseViewHolder;
import bean.BeanHome;
import bwie.redbaby1.R;


/**
 * Created by Zhengaihua on 2016/11/16.
 */


public class Type1Holder extends BaseViewHolder<BeanHome.DataBean.TagBean> {
    ImageView imaone;

    public Type1Holder(View itemView) {
        super(itemView);
        imaone = (ImageView) itemView.findViewById(R.id.imageone);
    }

    @Override
    public void setData(final Context context, final BeanHome.DataBean dataBean) {
        Glide.with(context).load("http://image1.suning.cn" + dataBean.getTag().get(0).getPicUrl()).into(imaone);
    }
}



 

package baseAdapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.ViewGroup;

import java.util.List;

import bean.BeanHome;
import bwie.redbaby1.R;
import viewholder.Type0Holder;
import viewholder.Type1Holder;

/**
 * Created by Zhengaihua on 2016/11/16.
 */

public class BaseAdapter extends RecyclerView.Adapter<BaseViewHolder> {
    private List<BeanHome.DataBean> list;
    private Context context;
    private LayoutInflater mInflater;
    public static final int TYPE0 = 0;
    public static final int TYPE1 = 1;

    public BaseAdapter(List<BeanHome.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
        this.mInflater = LayoutInflater.from(context);
    }

    @Override
    public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        switch (viewType) {
            case TYPE0:
                return new Type1Holder(mInflater.inflate(R.layout.typeonepage, parent, false));
            case TYPE1:
                return new Type0Holder(mInflater.inflate(R.layout.typehaiwai0, parent, false));
        }
        return null;
    }

    @Override
    public void onBindViewHolder(BaseViewHolder holder, int position) {
        holder.setData(context, list.get(position));
    }

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

    @Override
    public int getItemViewType(int position) {
        switch (position) {
            case 0:
                return TYPE0;
            case 1:
                return TYPE1;
            case 2:
                return TYPE0;
            case 3:
                return TYPE1;
            case 4:
                return TYPE0;
            case 5:
                return TYPE1;
            case 6:
                return TYPE0;
            case 7:
                return TYPE1;
        }
        return TYPE0;
    }
}

 

分享到:
评论

相关推荐

    RecycleView 实现复杂首页布局

    RecycleView 是 Android 平台上一个非常重要的组件,它用于高效地展示大量数据列表,尤其在处理滚动场景时,能够显著提升性能并节省内存。在本文中,我们将深入探讨如何利用 RecycleView 实现复杂的首页布局,就像你...

    RecycleView实现内部拖拽排序和两个RecycleView拖拽对调条目的Demo

    - 考虑到边缘情况,例如只有一个条目或没有可交换的条目时的行为。 通过这个Demo,开发者能够学习到如何增强`RecycleView`的功能,提供更加友好的用户交互体验。这种技术在很多应用场景中都非常实用,比如任务列表...

    recycleview多布局的使用

    首先定义一个接口来区分不同的布局类型: ```java public interface LayoutType { int TYPE_ONE = 1; int TYPE_TWO = 2; } ``` 然后,适配器中需要保存一个列表来存储数据源,同时记录每个条目对应的布局类型: ``...

    RecycleView 实现复杂首页布局三种方式

    在Android开发中,`RecycleView`是一种非常重要的视图组件,它被广泛用于实现高效的数据列表展示。标题“RecycleView实现复杂首页布局三种方式”揭示了如何使用`RecycleView`来创建多样化的首页布局,以满足不同设计...

    多个RecycleView的item拖动

    在Android开发中,RecyclerView是一个非常重要的视图组件,它用于展示可滚动的列表数据,具有高效、可定制化的特点。本篇文章将详细讲解如何实现多个RecyclerView的item拖动,以及如何添加头部布局和脚布局,同时...

    RecycleView 嵌套RecycleView 来实现购物车页面

    在Android开发中,RecycleView是一个非常重要的组件,它用于高效地展示大量数据列表,显著降低了内存消耗并提升了用户体验。本教程将深入讲解如何利用RecycleView嵌套RecycleView来构建一个购物车页面,同时结合...

    RecycleView布局切换

    在Android开发中,`RecycleView` 是一个非常重要的组件,它用于展示大量数据列表,具有高度可定制性和性能优化。本示例“RecycleView布局切换”关注的是如何在`RecycleView`中实现布局的动态切换,比如从单列布局...

    recycleview

    `RecycleView`是Android开发中的一个重要组件,它在应用设计中扮演着核心角色,尤其在数据展示方面。本篇文章将深入探讨`RecycleView`的原理、使用方法以及如何实现一个简单的联系人列表功能。 ### 1. `RecycleView...

    RecycleView

    RecycleView是Android开发中的一个核心组件,它在应用程序中被广泛用于展示可滚动的数据集,比如列表或者网格。RecycleView的出现替代了之前的ListView,因为它提供了更高的性能和更灵活的布局管理能力。 ...

    Kotlin语言实现FlexboxLayout流式布局替换Recycleview实现单选/多选

    FlexboxLayout是Google为Android提供的一个布局组件,它基于Flexbox布局模型,这个模型在Web开发中广泛用于创建响应式和动态布局。FlexboxLayout允许元素沿主轴线(flex-direction)灵活地伸缩,并支持自动对齐和...

    RecycleView+任意头尾布局+拖拽换位+拖拽删除demo

    本教程将详细讲解如何在`RecycleView`中实现任意头尾布局、拖拽换位以及拖拽删除功能,以创建一个功能丰富的交互式列表。 首先,`RecycleView`的任意头尾布局指的是在列表的开头或结尾添加自定义的视图,例如广告条...

    RecycleView联动效果

    而"RecycleView联动效果"则是将两个或多个RecycleView进行交互,使得滑动一个RecycleView时,其他关联的RecycleView也会相应地进行同步滑动,这种效果在很多复杂布局中被广泛应用,例如电商应用的商品分类展示、日历...

    详细的RecycleView案例(demo)

    RecycleView是Android开发中一个重要的视图组件,它用于高效地展示大量数据,通过复用视图项来节省内存和提高性能。本案例“详细的RecycleView案例(demo)”旨在提供一个全面且易懂的教程,帮助初学者更好地理解和...

    手写RecycleView的Demo

    在Android开发中,RecycleView是一个非常重要的组件,它用于展示可滚动的列表数据,具有高效的数据复用机制,能够显著提升应用性能并减少内存消耗。本Demo将深入讲解如何手写一个RecycleView,包括其核心原理和关键...

    Android RecycleView+任意头尾布局+拖拽换位+拖拽删除demo

    在Android开发中,RecycleView是一个非常重要的组件,它用于展示大量数据列表,极大地提高了性能和用户体验。本项目"Android RecycleView+任意头尾布局+拖拽换位+拖拽删除demo"聚焦于RecycleView的高级用法,包括...

    用一个RecycleView实现订单列表页面

    综上所述,实现一个订单列表页面涉及到RecycleView的使用、Adapter的设计、数据绑定、事件处理、布局管理、性能优化等多个方面。TestRecycleView项目应该包含了这些技术的实现,通过学习和分析这个项目,开发者可以...

    RecycleView嵌套RecycleView

    标题“RecycleView嵌套RecycleView”正是指这种场景,即在一个RecyclerView中嵌套另一个RecyclerView来实现多级列表的效果。 1. **嵌套RecyclerView的基本概念** - RecyclerView是Android SDK中的一个视图容器,它...

    RecycleView和CardView简单使用

    RecycleView是Google推荐用来替换ListView的视图复用控件,而CardView则是一个轻量级的布局容器,通常用于展示卡片式的设计。 **RecycleView** RecycleView的核心原理是视图复用,它能够有效地减少内存消耗和提高...

    Android 5.0 RecycleView demo

    在Android开发中,RecycleView是一个非常重要的组件,尤其在Android 5.0版本中引入后,它成为了处理大量数据列表的首选控件。RecycleView的出现替代了原本广泛使用的ListView,因为其更高的性能和更强大的灵活性。...

Global site tag (gtag.js) - Google Analytics