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 是 Android 平台上一个非常重要的组件,它用于高效地展示大量数据列表,尤其在处理滚动场景时,能够显著提升性能并节省内存。在本文中,我们将深入探讨如何利用 RecycleView 实现复杂的首页布局,就像你...
- 考虑到边缘情况,例如只有一个条目或没有可交换的条目时的行为。 通过这个Demo,开发者能够学习到如何增强`RecycleView`的功能,提供更加友好的用户交互体验。这种技术在很多应用场景中都非常实用,比如任务列表...
首先定义一个接口来区分不同的布局类型: ```java public interface LayoutType { int TYPE_ONE = 1; int TYPE_TWO = 2; } ``` 然后,适配器中需要保存一个列表来存储数据源,同时记录每个条目对应的布局类型: ``...
在Android开发中,`RecycleView`是一种非常重要的视图组件,它被广泛用于实现高效的数据列表展示。标题“RecycleView实现复杂首页布局三种方式”揭示了如何使用`RecycleView`来创建多样化的首页布局,以满足不同设计...
在Android开发中,RecyclerView是一个非常重要的视图组件,它用于展示可滚动的列表数据,具有高效、可定制化的特点。本篇文章将详细讲解如何实现多个RecyclerView的item拖动,以及如何添加头部布局和脚布局,同时...
在Android开发中,RecycleView是一个非常重要的组件,它用于高效地展示大量数据列表,显著降低了内存消耗并提升了用户体验。本教程将深入讲解如何利用RecycleView嵌套RecycleView来构建一个购物车页面,同时结合...
在Android开发中,`RecycleView` 是一个非常重要的组件,它用于展示大量数据列表,具有高度可定制性和性能优化。本示例“RecycleView布局切换”关注的是如何在`RecycleView`中实现布局的动态切换,比如从单列布局...
`RecycleView`是Android开发中的一个重要组件,它在应用设计中扮演着核心角色,尤其在数据展示方面。本篇文章将深入探讨`RecycleView`的原理、使用方法以及如何实现一个简单的联系人列表功能。 ### 1. `RecycleView...
RecycleView是Android开发中的一个核心组件,它在应用程序中被广泛用于展示可滚动的数据集,比如列表或者网格。RecycleView的出现替代了之前的ListView,因为它提供了更高的性能和更灵活的布局管理能力。 ...
FlexboxLayout是Google为Android提供的一个布局组件,它基于Flexbox布局模型,这个模型在Web开发中广泛用于创建响应式和动态布局。FlexboxLayout允许元素沿主轴线(flex-direction)灵活地伸缩,并支持自动对齐和...
本教程将详细讲解如何在`RecycleView`中实现任意头尾布局、拖拽换位以及拖拽删除功能,以创建一个功能丰富的交互式列表。 首先,`RecycleView`的任意头尾布局指的是在列表的开头或结尾添加自定义的视图,例如广告条...
而"RecycleView联动效果"则是将两个或多个RecycleView进行交互,使得滑动一个RecycleView时,其他关联的RecycleView也会相应地进行同步滑动,这种效果在很多复杂布局中被广泛应用,例如电商应用的商品分类展示、日历...
RecycleView是Android开发中一个重要的视图组件,它用于高效地展示大量数据,通过复用视图项来节省内存和提高性能。本案例“详细的RecycleView案例(demo)”旨在提供一个全面且易懂的教程,帮助初学者更好地理解和...
在Android开发中,RecycleView是一个非常重要的组件,它用于展示可滚动的列表数据,具有高效的数据复用机制,能够显著提升应用性能并减少内存消耗。本Demo将深入讲解如何手写一个RecycleView,包括其核心原理和关键...
在Android开发中,RecycleView是一个非常重要的组件,它用于展示大量数据列表,极大地提高了性能和用户体验。本项目"Android RecycleView+任意头尾布局+拖拽换位+拖拽删除demo"聚焦于RecycleView的高级用法,包括...
综上所述,实现一个订单列表页面涉及到RecycleView的使用、Adapter的设计、数据绑定、事件处理、布局管理、性能优化等多个方面。TestRecycleView项目应该包含了这些技术的实现,通过学习和分析这个项目,开发者可以...
标题“RecycleView嵌套RecycleView”正是指这种场景,即在一个RecyclerView中嵌套另一个RecyclerView来实现多级列表的效果。 1. **嵌套RecyclerView的基本概念** - RecyclerView是Android SDK中的一个视图容器,它...
RecycleView是Google推荐用来替换ListView的视图复用控件,而CardView则是一个轻量级的布局容器,通常用于展示卡片式的设计。 **RecycleView** RecycleView的核心原理是视图复用,它能够有效地减少内存消耗和提高...
在Android开发中,RecycleView是一个非常重要的组件,尤其在Android 5.0版本中引入后,它成为了处理大量数据列表的首选控件。RecycleView的出现替代了原本广泛使用的ListView,因为其更高的性能和更强大的灵活性。...