1:adapter 适配器 (只有一个适配器而且不需要写viewhodel)
public class Recviewadapter extends RecyclerView.Adapter { private List<Shopbean.ItemsBean> list=new ArrayList<>(); private Context context; ///注意这是 public public Recviewadapter(Context mainActivity){ context=mainActivity; } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view=null; RecyclerView.ViewHolder viewHolder=null; switch (i){ case 0: //这个记得加view view=View.inflate(context,R.layout.item_01,null);//相对应一张图片 一条文字 viewHolder=new MyViewHolder01(view); break; case 1: view=View.inflate(context,R.layout.item_02,null);//相对应三张图片 viewHolder=new MyViewHolder2(view); break; case 2: view=View.inflate(context,R.layout.item_03,null);// 一条文字 viewHolder=new MyViewHolder3(view); break; } return viewHolder; } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) { if(viewHolder instanceof MyViewHolder01){ Glide.with(context).load(list.get(i).getImage()).into(((MyViewHolder01)viewHolder).imageView); ((MyViewHolder01)viewHolder).tvTitle.setText(list.get(i).getTitle()); ((MyViewHolder01)viewHolder).tvDesc.setText(list.get(i).getDesc()); }else if(viewHolder instanceof MyViewHolder2){ Glide.with(context).load(list.get(i).getImages().get(0).getPic()).into(((MyViewHolder2)viewHolder).image_1); Glide.with(context).load(list.get(i).getImages().get(1).getPic()).into(((MyViewHolder2)viewHolder).image_2); Glide.with(context).load(list.get(i).getImages().get(2).getPic()).into(((MyViewHolder2)viewHolder).image_3); }else { ((MyViewHolder3)viewHolder).mTitle.setText(list.get(i).getTitle()); } } @Override public int getItemCount() { return list.size(); } ///创建 返回到他那个type值 @Override public int getItemViewType(int position) { return list.get(position).getType(); } public void setList(List<Shopbean.ItemsBean>list){ this.list =list; notifyDataSetChanged(); } ///这是链接第一个布局属性 private class MyViewHolder01 extends RecyclerView.ViewHolder{ ImageView imageView; TextView tvTitle,tvDesc; public MyViewHolder01(@NonNull View itemView) { super(itemView); imageView= itemView.findViewById(R.id.image); tvTitle= itemView.findViewById(R.id.tv_title); tvDesc= itemView.findViewById(R.id.tv_desc); } } ///这是链接第二个布局属性 三张图片 private class MyViewHolder2 extends RecyclerView.ViewHolder{ ImageView image_1,image_2,image_3; public MyViewHolder2(@NonNull View itemView) { super(itemView); image_1= itemView.findViewById(R.id.image_1); image_2= itemView.findViewById(R.id.image_2); image_3= itemView.findViewById(R.id.image_3); } } ///这是链接第三个布局属性 一个文字 private class MyViewHolder3 extends RecyclerView.ViewHolder{ TextView mTitle; public MyViewHolder3(@NonNull View itemView) { super(itemView); mTitle= itemView.findViewById(R.id.tv_title); } } }
2;主页面
public class Feagment01 extends Fragment { private RecyclerView mRecyclerView; private Recviewadapter recviewadapter; private List<Shopbean.ItemsBean> list; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View inflate = inflater.inflate(R.layout.fragment01, container, false); mRecyclerView= inflate.findViewById(R.id.Recy_view); return inflate; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); recviewadapter=new Recviewadapter(getContext()); LinearLayoutManager linearLayoutManager=new LinearLayoutManager(getContext()); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); mRecyclerView.setLayoutManager(linearLayoutManager); mRecyclerView.setAdapter(recviewadapter); doHttp(); } private void doHttp() { new OkHttpUtil().get(Http.DUOTIAOMU).result(new OkHttpUtil.HttpListener() { @Override public void success(String data) { Gson gson=new Gson(); Shopbean shopbean=gson.fromJson(data,Shopbean.class); list=shopbean.getItems(); recviewadapter.setList(list); recviewadapter.notifyDataSetChanged(); } @Override public void fail(String error) { } }); // } // }
///主布局一个 receview
itrm01:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/image" android:layout_width="100dp" android:layout_height="100dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_toRightOf="@+id/image" android:orientation="vertical"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:lines="1" android:textColor="#222222" android:textSize="18sp" /> <TextView android:id="@+id/tv_desc" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:lines="2" android:textColor="#999999" android:textSize="16sp" /> </LinearLayout> </RelativeLayout>
:item02
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:orientation="horizontal"> <ImageView android:id="@+id/image_1" android:layout_width="0dp" android:layout_height="100dp" android:layout_weight="1" /> <ImageView android:id="@+id/image_2" android:layout_width="0dp" android:layout_height="100dp" android:layout_weight="1" /> <ImageView android:id="@+id/image_3" android:layout_width="0dp" android:layout_height="100dp" android:layout_weight="1" /> </LinearLayout> </RelativeLayout>
item:03
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>