布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<android.support.v7.widget.RecyclerView
android:id="@+id/re_left"
android:layout_width="200dp"
android:layout_height="match_parent" />
<android.support.v7.widget.RecyclerView
android:id="@+id/re_right"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
java代码:
public class ShopCartFragment extends Fragment {
private Activity mactivity;
private RecyclerView re_left;
private RecyclerView re_right;
private String path = "http://www.zhaoapi.cn/product/getCatagory?tdsourcetag=s_pcqq_aiomsg";
private String path1 = "http://www.zhaoapi.cn/product/getProductCatagory?cid=3";
private ArrayList<Shop_left.DataBean> list;
private ArrayList<Shop_right.DataBean> list1;
@Override
public void onAttach(Context context) {
super.onAttach(context);
mactivity = (Activity) context;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 0:
RecyclerViewLeftAdapter recyclerViewLeftAdapter = new RecyclerViewLeftAdapter(mactivity,list);
re_left.setAdapter(recyclerViewLeftAdapter);
break;
case 1:
RecyclerViewRightAdapter recyclerViewRightAdapter = new RecyclerViewRightAdapter(mactivity,list1);
re_right.setAdapter(recyclerViewRightAdapter);
break;
}
}
};
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.shopcart_recycleview, null);
//获取控件
re_left = view.findViewById(R.id.re_left);
re_right = view.findViewById(R.id.re_right);
//获取数据
OkHttpUtils okHttpUtils = new OkHttpUtils();
okHttpUtils.get(path).getDataLisenter(new OkHttpUtils.GetData() {
@Override
public void Data(String s) {
list = new ArrayList<>();
Gson gson = new Gson();
Shop_left shop_left = gson.fromJson(s, Shop_left.class);
List<Shop_left.DataBean> data = shop_left.getData();
list.addAll(data);
Message message = Message.obtain();
message.what = 0;
message.obj = list;
handler.sendMessage(message);
}
});
//设置布局
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mactivity);
linearLayoutManager.setOrientation(LinearLayout.VERTICAL);
re_left.setLayoutManager(linearLayoutManager);
//设置分割线
re_left.addItemDecoration(new DividerItemDecoration(mactivity,DividerItemDecoration.VERTICAL));
//获取数据
OkHttpUtils okHttpUtil = new OkHttpUtils();
okHttpUtil.get(path1).getDataLisenter(new OkHttpUtils.GetData() {
@Override
public void Data(String s) {
list1 = new ArrayList<>();
Gson gson = new Gson();
Shop_right shop_right = gson.fromJson(s, Shop_right.class);
List<Shop_right.DataBean> dataBeans = shop_right.getData();
list1.addAll(dataBeans);
Message message = Message.obtain();
message.what = 1;
message.obj = list;
handler.sendMessage(message);
}
});
//设置布局
LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(mactivity);
linearLayoutManager1.setOrientation(LinearLayoutManager.VERTICAL);
re_right.setLayoutManager(linearLayoutManager1);
return view;
}
}
左侧布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp">
<TextView
android:id="@+id/text"
android:layout_width="200dp"
android:layout_height="50dp"
android:gravity="center"
android:text="text"
android:textSize="18sp"/>
</LinearLayout>
左侧展示数据适配器:
public class RecyclerViewLeftAdapter extends RecyclerView.Adapter<RecyclerViewLeftAdapter.ViewHolder> {
private Context context;
private ArrayList<Shop_left.DataBean> list;
public RecyclerViewLeftAdapter(Context context, ArrayList<Shop_left.DataBean> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.re_left_item, null);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.text.setText(list.get(position).getName());
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final TextView text;
public ViewHolder(View itemView) {
super(itemView);
text = itemView.findViewById(R.id.text);
}
}
}
右侧布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="text"
android:textSize="20sp"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
右侧展示数据适配器:
public class RecyclerViewRightAdapter extends RecyclerView.Adapter<RecyclerViewRightAdapter.ViewHolder> {
private Context context;
private ArrayList<Shop_right.DataBean> list1;
public RecyclerViewRightAdapter(Context context, ArrayList<Shop_right.DataBean> list1) {
this.context = context;
this.list1 = list1;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.re_right_item, parent, false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.text.setText(list1.get(position).getName());
holder.recyclerView.setLayoutManager(new GridLayoutManager(context,3,LinearLayoutManager.VERTICAL,false));
RecyclerViewRightChildAdapter adapter = new RecyclerViewRightChildAdapter(context,list1.get(position).getList());
holder.recyclerView.setAdapter(adapter);
}
@Override
public int getItemCount() {
return list1.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final TextView text;
private final RecyclerView recyclerView;
public ViewHolder(View itemView) {
super(itemView);
text = itemView.findViewById(R.id.textView);
recyclerView = itemView.findViewById(R.id.recyclerView);
}
}
}
子条目布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<ImageView
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/text"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="text" />
</LinearLayout>
子条目适配器:
public class RecyclerViewRightChildAdapter extends RecyclerView.Adapter<RecyclerViewRightChildAdapter.ViewHolder> {
private Context context;
private List<Shop_right.DataBean.ListBean> listBeans;
public RecyclerViewRightChildAdapter(Context context, List<Shop_right.DataBean.ListBean> listBeans) {
this.context = context;
this.listBeans = listBeans;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.re_right_child, parent, false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.text.setText(listBeans.get(position).getName());
Picasso.with(context).load(listBeans.get(position).getIcon()).into(holder.image);
}
@Override
public int getItemCount() {
return listBeans.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final ImageView image;
private final TextView text;
public ViewHolder(View itemView) {
super(itemView);
image = itemView.findViewById(R.id.image);
text = itemView.findViewById(R.id.text);
}
}
}