MainActivity
package com.example.windows.ijingdong.fragment; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; import com.example.windows.ijingdong.R; import com.example.windows.ijingdong.XiangQingActivity; import com.example.windows.ijingdong.adapter.LeftAdapter; import com.example.windows.ijingdong.adapter.RightAdapter; import com.example.windows.ijingdong.bean.GridBean; import com.example.windows.ijingdong.bean.RightBean; import com.example.windows.ijingdong.grid.presenter.GridPresenter; import com.example.windows.ijingdong.grid.view.IGridView; import com.example.windows.ijingdong.sort.right.presenter.RightPresenter; import com.example.windows.ijingdong.sort.right.view.IRightView; import com.recker.flybanner.FlyBanner; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; public class FenLeiFragment extends Fragment implements IGridView, IRightView { public static final String TAG = "FenLeiFragment"; @BindView(R.id.rc_left) RecyclerView rcLeft; @BindView(R.id.ll_right) LinearLayout llRight; private List<GridBean.DataBean> list; private LeftAdapter leftAdapter; private RecyclerView.LayoutManager layoutManager; private GridPresenter gridPresenter; private List<RightBean.DataBean.ListBean> listBeans; private RightPresenter rightPresenter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_fen_lei, container, false); ButterKnife.bind(this, view); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); list = new ArrayList<>(); gridPresenter = new GridPresenter(); gridPresenter.attach(this); gridPresenter.getGrid(); leftAdapter = new LeftAdapter(getActivity(), list); layoutManager = new LinearLayoutManager(getActivity()); rcLeft.setLayoutManager(layoutManager); rcLeft.setAdapter(leftAdapter); rightPresenter = new RightPresenter(); rightPresenter.attah(this); leftAdapter.setOnItemClickListener(new LeftAdapter.OnItemClickListener() { @Override public void onItemClick(View itemView, int position) { GridBean.DataBean dataBean = list.get(position); rightPresenter.getRight(dataBean.getCid()); } }); } @Override public void success(GridBean gridBean) { list.clear(); list.addAll(gridBean.getData()); leftAdapter.notifyDataSetChanged(); } @Override public void success(final RightBean rightBean) { llRight.removeAllViews(); for ( int i = 0; i < rightBean.getData().size(); i++) { TextView textView = new TextView(getActivity()); textView.setText(rightBean.getData().get(i).getName()); llRight.addView(textView); listBeans = new ArrayList<>(); RecyclerView recyclerView = new RecyclerView(getActivity()); RecyclerView.LayoutManager layoutManager = new GridLayoutManager(getActivity(), 3); RightAdapter rightAdapter = new RightAdapter(getActivity(), listBeans); recyclerView.setLayoutManager(layoutManager); recyclerView.setAdapter(rightAdapter); listBeans.clear(); listBeans.addAll(rightBean.getData().get(i).getList()); rightAdapter.notifyDataSetChanged(); llRight.addView(recyclerView); } } @Override public void failed(Exception e) { } @Override public void onResume() { super.onResume(); rightPresenter.getRight("1"); } @Override public void onDestroyView() { super.onDestroyView(); } }
fenlei.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:background="#d4d4d4"> <android.support.v7.widget.RecyclerView android:id="@+id/rc_left" android:layout_width="@dimen/dp_0" android:layout_weight="2" android:layout_height="match_parent"></android.support.v7.widget.RecyclerView> <LinearLayout android:orientation="vertical" android:layout_width="@dimen/dp_0" android:layout_weight="5" android:layout_height="wrap_content"> <ScrollView android:id="@+id/sc" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/ll_right" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"></LinearLayout> </ScrollView> </LinearLayout> </LinearLayout>
leftAdapter
package com.example.windows.ijingdong.adapter; import android.content.Context; import android.graphics.Color; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.windows.ijingdong.R; import com.example.windows.ijingdong.bean.GridBean; import java.util.List; /** * Created by Windows on 2018/11/9. */ public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.ViewHolder> { private Context context; private List<GridBean.DataBean> list; public LeftAdapter(Context context, List<GridBean.DataBean> list) { this.context = context; this.list = list; } public interface OnItemClickListener{ void onItemClick(View itemView , int position); } private OnItemClickListener clickListener; public void setOnItemClickListener(OnItemClickListener clickListener){ this.clickListener = clickListener; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_left, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(final ViewHolder holder, final int position) { holder.txtTitles.setText(list.get(position).getName()); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (clickListener != null){ clickListener.onItemClick(v,position); } } }); } @Override public int getItemCount() { return list.size(); } public class ViewHolder extends RecyclerView.ViewHolder{ private TextView txtTitles; public ViewHolder(View itemView) { super(itemView); txtTitles = itemView.findViewById(R.id.txt_titles); } } }
leftadapter.xml
<?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"> <TextView android:id="@+id/txt_titles" android:layout_marginTop="@dimen/dp_10" android:padding="@dimen/dp_5" android:gravity="center" android:layout_width="@dimen/dp_80" android:layout_height="wrap_content" /> </LinearLayout>
rightadapter
package com.example.windows.ijingdong.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.windows.ijingdong.R; import com.example.windows.ijingdong.bean.RightBean; import com.facebook.drawee.view.SimpleDraweeView; import java.util.List; import static com.example.windows.ijingdong.fragment.FenLeiFragment.TAG; /** * Created by Windows on 2018/11/9. */ public class RightAdapter extends RecyclerView.Adapter<RightAdapter.ViewHolder>{ private Context context; private List<RightBean.DataBean.ListBean> listBeans; public RightAdapter(Context context, List<RightBean.DataBean.ListBean> listBeans) { this.context = context; this.listBeans = listBeans; } public interface OnRightItemClickListener{ void onItemClick(View itemView , int position); } private OnRightItemClickListener clickListener; public void setOnRightItemClickListener(OnRightItemClickListener clickListener){ this.clickListener = clickListener; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_right, parent, false); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(ViewHolder holder, final int position) { holder.imageLogos.setImageURI(listBeans.get(position).getIcon()); holder.txtTitless.setText(listBeans.get(position).getName()); } @Override public int getItemCount() { return listBeans.size(); } public class ViewHolder extends RecyclerView.ViewHolder{ private SimpleDraweeView imageLogos; private TextView txtTitless; public ViewHolder(View itemView) { super(itemView); imageLogos = itemView.findViewById(R.id.image_logos); txtTitless = itemView.findViewById(R.id.txt_titless); } } }
rightadapter.xml
<?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:gravity="center" android:padding="@dimen/dp_10" android:orientation="vertical"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/image_logos" android:layout_width="@dimen/dp_30" android:layout_height="@dimen/dp_30" /> <TextView android:id="@+id/txt_titless" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>