整个格局只有一个RecycleView
整个布局只有一个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; } }