用RecyclerView来实现左侧列表和右侧列表的列表展示。
LeftAdapter
--------------------------------------第一步---虽然会报错,但还是吧这个继承完全写完吧-----------------------------------------------------------
public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.LeftViewHolder> {
--------------------------------------实现构造方法--------------------------------------
private List<LeftBean.Data> list;
private Context context;
public LeftAdapter(List<LeftBean.Data> list, Context context) {
this.list = list;
this.context = context;
}
-----------------------第二步---创建LeftViewHolder---创建完class之后,再去最上面实现方法一共3步解决报红线-----------------------------
class LeftViewHolder extends RecyclerView.ViewHolder {
private TextView nameTv;
public LeftViewHolder(@NonNull View itemView) {
super(itemView);
nameTv = itemView.findViewById(R.id.name);
}
}
--------------------------------------------第三步-------这个是绑定子布局的方法-------------------------------------------------------------------
@NonNull
@Override
public LeftViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.left_item_layout, viewGroup, false);
LeftViewHolder leftViewHolder = new LeftViewHolder(view);
return leftViewHolder;
}
@Override
public void onBindViewHolder(@NonNull LeftViewHolder leftViewHolder, int i) {
final LeftBean.Data data = list.get(i);
leftViewHolder.nameTv.setText(data.name);
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
RightAdapter
--------------------------------------第一步---虽然会报错,但还是吧这个继承完全写完吧-----------------------------------------------------------
public class RightAdapter extends RecyclerView.Adapter<RightAdapter.RightViewHolder> {
private List<RightBean.OneData> list;
private Context context;
public RightAdapter(List<RightBean.OneData> list, Context context) {
this.list = list;
this.context = context;
}
--------------------第二步---创建RightViewHolder---创建完class之后,再去最上面实现方法一共3步解决报红线-----------------------------
class RightViewHolder extends RecyclerView.ViewHolder {
private TextView nameTv;
private RecyclerView rv;
public RightViewHolder(@NonNull View itemView) {
super(itemView);
nameTv = itemView.findViewById(R.id.name);
rv = itemView.findViewById(R.id.rv);
}
}
--------------------------------------------第三步-------这个是绑定子布局的方法-------------------------------------------------------------------
@NonNull
@Override
public RightViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.right_item_layout, viewGroup, false);
RightAdapter.RightViewHolder rightViewHolder = new RightAdapter.RightViewHolder(view);
return rightViewHolder;
}
@Override
public void onBindViewHolder(@NonNull RightViewHolder rightViewHolder, int i) {
RightBean.OneData bean = list.get(i);
List<RightBean.OneData.Data> list = bean.list;
rightViewHolder.nameTv.setText(bean.name);
-------------------这个地方需要实现多条目布局,所以rightViewHolder需要setAdapter ---RightItemAdapter----------------
rightViewHolder.rv.setLayoutManager(new GridLayoutManager(context,3));
rightViewHolder.rv.setAdapter(new RightItemAdapter(list,context));
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}
RightItemAdapter
-------------------------------------------第一步---虽然会报错,但还是吧这个继承完全写完吧-----------------------------------------------------------
public class RightItemAdapter extends RecyclerView.Adapter<RightItemAdapter.RightViewHolder> {
private List<RightBean.OneData.Data> list;
private Context context;
public RightItemAdapter(List<RightBean.OneData.Data> list, Context context) {
this.list = list;
this.context = context;
}
-------------------第二步---创建RightViewHolder---创建完class之后,再去最上面实现方法一共3步解决报红线----------------
class RightViewHolder extends RecyclerView.ViewHolder {
private TextView nameTv;
private ImageView iv;
public RightViewHolder(@NonNull View itemView) {
super(itemView);
nameTv = itemView.findViewById(R.id.name);
iv = itemView.findViewById(R.id.iv);
}
}
-------------------这个地方需要实现多条目布局,所以rightViewHolder需要setAdapter ---RightItemAdapter----------------
@NonNull
@Override
public RightItemAdapter.RightViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.right_subitem_layout, viewGroup, false);
RightItemAdapter.RightViewHolder rightViewHolder = new RightItemAdapter.RightViewHolder(view);
return rightViewHolder;
}
@Override
public void onBindViewHolder(@NonNull RightViewHolder rightViewHolder, int i) {
RightBean.OneData.Data bean = list.get(i);
rightViewHolder.nameTv.setText(bean.name);
-------------------有图片!用图片加载框架Glide实现----------------
Glide.with(context).load(bean.icon).into(rightViewHolder.iv);
}
@Override
public int getItemCount() {
return list == null ? 0 : list.size();
}