电商分类

layout_fl.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:id="@+id/fl_search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/margin5"
        android:orientation="horizontal">

        <!--二维码-->
        <LinearLayout
            android:id="@+id/scan"
            android:layout_width="@dimen/mysearchview_height"
            android:layout_height="@dimen/mysearchview_height"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="vertical">

            <ImageView
                android:layout_width="@dimen/search_height"
                android:layout_height="@dimen/search_height"
                android:src="@drawable/sao_kind"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp"
                android:text="扫啊扫"/>
        </LinearLayout>

        <com.bwie.shiyue.jd.view.customview.MySearchView
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="@dimen/mysearchview_height">

        </com.bwie.shiyue.jd.view.customview.MySearchView>

        <LinearLayout
            android:layout_width="@dimen/mysearchview_height"
            android:layout_height="@dimen/mysearchview_height"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="vertical">
            <ImageView
                android:layout_width="@dimen/search_height"
                android:layout_height="@dimen/search_height"
                android:src="@drawable/msg_hei"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="12sp"
                android:text="消息"/>

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_below="@+id/fl_search"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ListView
            android:id="@+id/fl_left"
            android:layout_width="100dp"
            android:layout_height="match_parent">

        </ListView>

        <ListView
            android:id="@+id/fl_right"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </ListView>
    </LinearLayout>
</RelativeLayout>

layout_fl_left.xml

<?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">
<TextView
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:textStyle="bold"
    android:gravity="center"
    android:id="@+id/fl_left_tv"
    android:textSize="15sp"/>
</LinearLayout>

layout_fl_right.xml

<?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:background="#eee"
    android:orientation="vertical">
    <TextView
        android:id="@+id/fl_right_tv"
        android:textSize="15sp"
        android:text="123"
        android:paddingLeft="10dp"
        android:gravity="center_vertical"
        android:background="#c7bbbb"
        android:layout_width="match_parent"
        android:layout_height="30dp" />
    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/right_rcy"
        ></android.support.v7.widget.RecyclerView>
</LinearLayout>

layout_fl_right_item.xml

<?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:background="#eee"
    android:orientation="vertical">
    <LinearLayout
        android:id="@+id/right_llt"
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:gravity="center"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/item_img"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_gravity="center_horizontal"
            android:scaleType="centerCrop" />

        <TextView
            android:id="@+id/item_home_name"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center"
            android:singleLine="false"
            android:layout_marginTop="10dp"
            android:text="标题"
            android:textSize="12dp" />

    </LinearLayout>

</LinearLayout>

adapter包


LeftAdapter
public class LeftAdapter extends BaseAdapter {
    private Context context;
    private List<SYNavBean.DataBean> list;


    public LeftAdapter(Context context, List<SYNavBean.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View view, ViewGroup viewGroup) {
       ViewHolder viewHolder=null;
        if(view==null){
            view = View.inflate(context, R.layout.layout_fl_left, null);
            TextView textView = view.findViewById(R.id.fl_left_tv);

            viewHolder = new ViewHolder(textView);
            view.setTag(viewHolder);
        }else{
            viewHolder= (ViewHolder) view.getTag();
        }

        viewHolder.getTextView().setText(list.get(position).getName());


        return view;
    }

    //适配器
    class ViewHolder{
        private TextView textView;

        public ViewHolder(TextView textView) {
            this.textView = textView;
        }

        public TextView getTextView() {
            return textView;
        }

        public void setTextView(TextView textView) {
            this.textView = textView;
        }
    }
}

RightAdapter
public class RightAdapter extends BaseAdapter{
    private Context context;
    private List<ClassBean.DataBean> data;

    public RightAdapter(Context context, List<ClassBean.DataBean> data) {
        this.context = context;
        this.data = data;
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int i) {
        return data.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        ViewHolder holder=null;

        List<ClassBean.DataBean.ListBean> list = this.data.get(i).getList();
        if(view==null){
            view=View.inflate(context, R.layout.layout_fl_right,null);
            holder=new ViewHolder();
            holder.tvRight=view.findViewById(R.id.fl_right_tv);
            holder.rightRcy=view.findViewById(R.id.right_rcy);
            view.setTag(holder);
        }else{
           holder= (ViewHolder) view.getTag();
        }
        holder.tvRight.setText(list.get(i).getName());
        RightItemAdapter adapter=new RightItemAdapter(context,list);
        holder.rightRcy.setLayoutManager(new GridLayoutManager(context,3));
        holder.rightRcy.setAdapter(adapter);
        return view;
    }

    class ViewHolder{
        TextView tvRight;
        RecyclerView rightRcy;
    }
}

RightItemAdapter
public class RightItemAdapter extends RecyclerView.Adapter<RightItemAdapter.ViewHolder>{
    private Context context;
    private List<ClassBean.DataBean.ListBean> list;


    public RightItemAdapter(Context context, List<ClassBean.DataBean.ListBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = View.inflate(context, R.layout.layout_fl_right_item, null);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.itemName.setText(list.get(position).getName());
        Glide.with(context).load(list.get(position).getIcon()).into(holder.itemImg);
    }

    @Override
    public int getItemCount() {
        return list.size();
    }

    class ViewHolder extends RecyclerView.ViewHolder{
    private TextView itemName;
    private ImageView itemImg;
    private LinearLayout rightLlt;

    public ViewHolder(View itemView) {
        super(itemView);
        itemName = itemView.findViewById(R.id.item_home_name);
        itemImg = itemView.findViewById(R.id.item_img);
        rightLlt = itemView.findViewById(R.id.right_llt);
    }
}
}
HttpApi
public class HttpApi {


    //分类页面子分类接口
    public static final String ClassUrl="https://www.zhaoapi.cn/product/getProductCatagory";
}
ClassBean
public class ClassBean {

    /**
     * msg : 获取子分类成功
     * code : 0
     * data : [{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"月饼","pcid":1,"pscid":1},{"icon":"http://120.27.23.105/images/icon.png","name":"坚果炒货","pcid":1,"pscid":2},{"icon":"http://120.27.23.105/images/icon.png","name":"糖巧","pcid":1,"pscid":3},{"icon":"http://120.27.23.105/images/icon.png","name":"休闲零食","pcid":1,"pscid":4},{"icon":"http://120.27.23.105/images/icon.png","name":"肉干肉脯","pcid":1,"pscid":5},{"icon":"http://120.27.23.105/images/icon.png","name":"饼干蛋糕","pcid":1,"pscid":6},{"icon":"http://120.27.23.105/images/icon.png","name":"蜜饯果干","pcid":1,"pscid":7},{"icon":"http://120.27.23.105/images/icon.png","name":"无糖食品","pcid":1,"pscid":8}],"name":"休闲零食","pcid":"1"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"新鲜水果","pcid":2,"pscid":9},{"icon":"http://120.27.23.105/images/icon.png","name":"海鲜水产","pcid":2,"pscid":10},{"icon":"http://120.27.23.105/images/icon.png","name":"精选肉类","pcid":2,"pscid":11},{"icon":"http://120.27.23.105/images/icon.png","name":"蛋类","pcid":2,"pscid":12},{"icon":"http://120.27.23.105/images/icon.png","name":"新鲜蔬菜","pcid":2,"pscid":13},{"icon":"http://120.27.23.105/images/icon.png","name":"冷冻食品","pcid":2,"pscid":14},{"icon":"http://120.27.23.105/images/icon.png","name":"饮品甜品","pcid":2,"pscid":15},{"icon":"http://120.27.23.105/images/icon.png","name":"大闸蟹","pcid":2,"pscid":16}],"name":"京东生鲜","pcid":"2"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"大米","pcid":3,"pscid":21},{"icon":"http://120.27.23.105/images/icon.png","name":"面粉","pcid":3,"pscid":22},{"icon":"http://120.27.23.105/images/icon.png","name":"杂粮","pcid":3,"pscid":23},{"icon":"http://120.27.23.105/images/icon.png","name":"食用油","pcid":3,"pscid":24},{"icon":"http://120.27.23.105/images/icon.png","name":"调味品","pcid":3,"pscid":25},{"icon":"http://120.27.23.105/images/icon.png","name":"方便速食","pcid":3,"pscid":26},{"icon":"http://120.27.23.105/images/icon.png","name":"有机食品","pcid":3,"pscid":27}],"name":"粮油调味","pcid":"3"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"饮用水","pcid":4,"pscid":28},{"icon":"http://120.27.23.105/images/icon.png","name":"饮料","pcid":4,"pscid":29},{"icon":"http://120.27.23.105/images/icon.png","name":"牛奶乳品","pcid":4,"pscid":30},{"icon":"http://120.27.23.105/images/icon.png","name":"名茶","pcid":4,"pscid":31},{"icon":"http://120.27.23.105/images/icon.png","name":"蜂蜜","pcid":4,"pscid":32}],"name":"水饮茗茶","pcid":"4"},{"cid":"1","list":[{"icon":"http://120.27.23.105/images/icon.png","name":"白酒","pcid":5,"pscid":33},{"icon":"http://120.27.23.105/images/icon.png","name":"葡萄酒","pcid":5,"pscid":34},{"icon":"http://120.27.23.105/images/icon.png","name":"洋酒","pcid":5,"pscid":35},{"icon":"http://120.27.23.105/images/icon.png","name":"啤酒","pcid":5,"pscid":36},{"icon":"http://120.27.23.105/images/icon.png","name":"黄酒","pcid":5,"pscid":37},{"icon":"http://120.27.23.105/images/icon.png","name":"陈年老酒","pcid":5,"pscid":38}],"name":"中外名酒","pcid":"5"}]
     */

    private String msg;
    private String code;
    private List<DataBean> data;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public List<DataBean> getData() {
        return data;
    }

    public void setData(List<DataBean> data) {
        this.data = data;
    }

    public static class DataBean {
        /**
         * cid : 1
         * list : [{"icon":"http://120.27.23.105/images/icon.png","name":"月饼","pcid":1,"pscid":1},{"icon":"http://120.27.23.105/images/icon.png","name":"坚果炒货","pcid":1,"pscid":2},{"icon":"http://120.27.23.105/images/icon.png","name":"糖巧","pcid":1,"pscid":3},{"icon":"http://120.27.23.105/images/icon.png","name":"休闲零食","pcid":1,"pscid":4},{"icon":"http://120.27.23.105/images/icon.png","name":"肉干肉脯","pcid":1,"pscid":5},{"icon":"http://120.27.23.105/images/icon.png","name":"饼干蛋糕","pcid":1,"pscid":6},{"icon":"http://120.27.23.105/images/icon.png","name":"蜜饯果干","pcid":1,"pscid":7},{"icon":"http://120.27.23.105/images/icon.png","name":"无糖食品","pcid":1,"pscid":8}]
         * name : 休闲零食
         * pcid : 1
         */

        private String cid;
        private String name;
        private String pcid;
        private List<ListBean> list;

        public String getCid() {
            return cid;
        }

        public void setCid(String cid) {
            this.cid = cid;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getPcid() {
            return pcid;
        }

        public void setPcid(String pcid) {
            this.pcid = pcid;
        }

        public List<ListBean> getList() {
            return list;
        }

        public void setList(List<ListBean> list) {
            this.list = list;
        }

        public static class ListBean {
            /**
             * icon : http://120.27.23.105/images/icon.png
             * name : 月饼
             * pcid : 1
             * pscid : 1
             */

            private String icon;
            private String name;
            private int pcid;
            private int pscid;

            public String getIcon() {
                return icon;
            }

            public void setIcon(String icon) {
                this.icon = icon;
            }

            public String getName() {
                return name;
            }

            public void setName(String name) {
                this.name = name;
            }

            public int getPcid() {
                return pcid;
            }

            public void setPcid(int pcid) {
                this.pcid = pcid;
            }

            public int getPscid() {
                return pscid;
            }

            public void setPscid(int pscid) {
                this.pscid = pscid;
            }
        }
    }
}
FLModel
public class FLModel implements IFLModel {

    private static final String TAG = "FLModel----";

    //分类左边导航栏数据
    @Override
    public void getFLLeftData(String url, Map<String, String> params, final SetModelListener setModelListener) {
        OkHttpUtils okHttpUtils = OkHttpUtils.getInstance();
        okHttpUtils.doPost(url,params);
        okHttpUtils.setOnFinishListener(new OnFinishListener() {
            @Override
            public void onSuccess(String json) {
                Log.d(TAG, "onSuccess: "+json);

                setModelListener.getSuccess(json);
            }

            @Override
            public void onFailed(String error) {
                setModelListener.getError(error);

            }
        });

    }
    //分类右边导航栏数据
    @Override
    public void getFLRightData(String url, Map<String, String> params, final SetModelListener setModelListener) {
        OkHttpUtils okHttpUtils = OkHttpUtils.getInstance();
        okHttpUtils.doPost(url,params);
        okHttpUtils.setOnFinishListener(new OnFinishListener() {
            @Override
            public void onSuccess(String json) {
                Log.d(TAG, "onSuccess: "+json);

                setModelListener.getSuccess(json);
            }

            @Override
            public void onFailed(String error) {
                setModelListener.getError(error);
            }
        });
    }
}

IFLModel
public interface IFLModel {

    //分类左边导航栏数据
    void getFLLeftData(String url, Map<String, String> params, SetModelListener setModelListener);
    //分类右边导航栏数据
    void getFLRightData(String url, Map<String, String> params, SetModelListener setModelListener);
}
SetModelListener
public interface SetModelListener {
    //获取成功
    void getSuccess(String json);
    //获取失败
    void getError(String error);
}
IFLPresenter
public interface IFLPresenter {

    //分类左边导航栏数据
    void showLeftToView(IFLModel iflModel, IFLView iflView);
    //分类右边导航栏数据
    void showRightToView(IFLModel iflModel, IFLView iflView);
}
FLPresenter
public class FLPresenter implements IFLPresenter {

    private static final String TAG ="FLPresenter----" ;

    //分类左边导航栏数据
    @Override
    public void showLeftToView(IFLModel iflModel, final IFLView iflView) {
        Map<String, String> params = new HashMap<>();
        iflModel.getFLLeftData(HttpApi.NavUrl, params, new SetModelListener() {
            @Override
            public void getSuccess(String json) {
                Log.d(TAG, "getSuccess: "+json);
                Gson gson=new Gson();
                SYNavBean syNavBean = gson.fromJson(json,SYNavBean.class);
                List<SYNavBean.DataBean> data = syNavBean.getData();

                iflView.showFLLeftData(data);
            }

            @Override
            public void getError(String error) {
                Log.d(TAG, "getError: "+error);
            }
        });

    }
    //分类右边导航栏数据
    @Override
    public void showRightToView(IFLModel iflModel, final IFLView iflView) {
        Map<String, String> map = new HashMap<>();
        Log.d(TAG, "showRightToView: "+iflView.getCid());
        map.put("cid",iflView.getCid());
        iflModel.getFLRightData(HttpApi.ClassUrl, map, new SetModelListener() {
            @Override
            public void getSuccess(String json) {
                Log.d(TAG, "getSuccess: "+json);
                Gson gson=new Gson();
                ClassBean classBean = gson.fromJson(json, ClassBean.class);
                List<ClassBean.DataBean> data = classBean.getData();
                iflView.showFLRightData(data);

            }

            @Override
            public void getError(String error) {
                Log.d(TAG, "getError: "+error);
            }
        });

    }

}
OkHttpUtils
public class OkHttpUtils {
    private static final String TAG = "OkHttpUtils-----";
    private static OkHttpUtils okHttpUtils;
    private final int SUCCESS = 0;
    private final int ERROR = 1;
    private MyHandler myHandler = new MyHandler();
    private OnFinishListener onFinishListener;

    public static OkHttpUtils getInstance() {
        if (null== okHttpUtils ) {
            synchronized (OkHttpUtils.class){
                if (okHttpUtils==null){
                    okHttpUtils = new OkHttpUtils();
                }
            }

        }
        return okHttpUtils;
    }

    class MyHandler extends Handler {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case SUCCESS:
                    //成功
                    String json = (String) msg.obj;
                    onFinishListener.onSuccess(json);
                    break;

                case ERROR:
                    //失败
                    String error = (String) msg.obj;
                    onFinishListener.onFailed(error);
                    break;
            }
        }
    }

    //get
    public  void doGet(String url) {
        OkHttpClient okHttpClient = new OkHttpClient.Builder().addInterceptor(new MyIntercepter()).build();

        Request request = new Request.Builder().url(url).build();
        Call call = okHttpClient.newCall(request);

        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Message message = myHandler.obtainMessage();
                message.what = ERROR;
                message.obj = e.getMessage();
                myHandler.sendMessage(message);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Message message = myHandler.obtainMessage();
                message.what = SUCCESS;
                message.obj = response.body().string();
                myHandler.sendMessage(message);
            }
        });
    }

    public void setOnFinishListener(OnFinishListener onFinishListener) {
        this.onFinishListener = onFinishListener;
    }

    //post
    public  void doPost(String url, Map<String, String> params) {
        OkHttpClient okHttpClient = new OkHttpClient.Builder().addInterceptor(new MyIntercepter()).build();

        FormBody.Builder builder = new FormBody.Builder();
        Set<String> keySet = params.keySet();
        for (String key :
                keySet) {
            String value = params.get(key);
            builder.add(key, value);
        }
        FormBody formBody = builder.build();
        Request request = new Request.Builder().url(url).post(formBody).build();
        Call call = okHttpClient.newCall(request);

        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Message message = myHandler.obtainMessage();
                message.what = ERROR;
                message.obj = e.getMessage();
                myHandler.sendMessage(message);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Message message = myHandler.obtainMessage();
                message.what = SUCCESS;
                message.obj = response.body().string();
                myHandler.sendMessage(message);
            }
        });

    }

    //拦截器
    class MyIntercepter implements Interceptor {
        //intercept 拦截
        @Override
        public Response intercept(Chain chain) throws IOException {
            //添加公共参数
//            post 取出原来所有的参数,将之加到新的请求体里面。然后让请求去执行
            Request request = chain.request();
            //获取请求方法
            String method = request.method();
            if (method.equals("GET")) {//---------------------------GET 拦截
                //取出url地址
                String url = request.url().toString();
                //拼接公共参数
                boolean contains = url.contains("?");
                if (contains) {
                    url = url + "&source=android";
                } else {
                    url = url + "?source=android";
                }

                Request request1 = request.newBuilder().url(url).build();

                Response response = chain.proceed(request1);

                return response;


            } else if (method.equals("POST")) {//---------------------POST 拦截
                RequestBody body = request.body();//请求体
                if (body instanceof FormBody) {
                    //创建新的请求体
                    FormBody.Builder newBuilder = new FormBody.Builder();
                    for (int i = 0; i < ((FormBody) body).size(); i++) {
                        String key = ((FormBody) body).name(i);
                        String value = ((FormBody) body).value(i);
                        newBuilder.add(key, value);
                    }
                    //添加公共参数
                    newBuilder.add("source", "android");
                    FormBody newBody = newBuilder.build();
                    //创建新的请求体
                    Request request1 = request.newBuilder().post(newBody).build();
                    //去请求
                    Response response = chain.proceed(request1);
                    return response;
                }
            }
            return null;
        }
    }

    //上传文件(图片)
    public void upLoadImage(String url, String path) {//url 要上传的地址。path 要上传的文件路径
        //媒体类型
        MediaType mediaType = MediaType.parse("image/*");
        //multipartbody
        MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
        File file = new File(path);
        MultipartBody multipartBody = builder.addFormDataPart("file", file.getName(), RequestBody.create(mediaType, file)).build();

        OkHttpClient okHttpClient = new OkHttpClient();
        Request request = new Request.Builder().url(url).post(multipartBody).build();
        Call call = okHttpClient.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.d(TAG, "上传失败0----: ");
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Log.d(TAG, "上传成功: ");
            }
        });

    }
}
OnFinishListener
public interface OnFinishListener {
    void onSuccess(String json);
    void onFailed(String error);
}
IFLView
public interface IFLView {

    //分类左边导航栏展示
    void showFLLeftData(List<SYNavBean.DataBean> data);

    //分类右边导航栏展示
    void showFLRightData(List<ClassBean.DataBean> data);

    //得到左边导航栏的cid
    String getCid();

}
FenLeiFragment
public class FenLeiFragment extends BaseFragment implements IFLView {
    private static final String TAG = "FenLeiFragment----";
    private ListView fl_left,fl_right;
    private FLPresenter flPresenter;
    private List<SYNavBean.DataBean> list;

    private String cid;


    /**
     * 标志位,标志已经初始化完成
     */
    private boolean isPrepared;
    /**
     * 是否已被加载过一次,第二次就不再去请求数据了
     */
    private boolean mHasLoadedOnce;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        if (mView == null) {
            // 需要inflate一个布局文件 填充Fragment
            mView = inflater.inflate(R.layout.layout_fl, container, false);
            initView();
            isPrepared = true;
//        实现懒加载
            lazyLoad();
        }
        //缓存的mView需要判断是否已经被加过parent, 如果有parent需要从parent删除,要不然会发生这个mView已经有parent的错误。
        ViewGroup parent = (ViewGroup) mView.getParent();
        if (parent != null) {
            parent.removeView(mView);
        }

        return mView;
    }
    /**
     * 初始化控件
     */
    private void initView() {

        fl_left = mView.findViewById(R.id.fl_left);
        fl_right = mView.findViewById(R.id.fl_right);

        fl_left.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                int id = list.get(i).getCid();
                FenLeiFragment.this.cid=id+"";

                flPresenter.showRightToView(new FLModel(),FenLeiFragment.this);

            }
        });

    }



    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        if (getUserVisibleHint()) {
            Log.d(TAG, "可见");
            //调用分类页面的presenter层
            flPresenter = new FLPresenter();
            flPresenter.showLeftToView(new FLModel(),this);

        }
    }

    @Override
    public void lazyLoad() {
        if (!isPrepared || !isVisible || mHasLoadedOnce) {
            return;
        }
        //填充各控件的数据
        mHasLoadedOnce = true;
    }
    public static FenLeiFragment newInstance(String param1) {
        FenLeiFragment fragment = new FenLeiFragment();
        Bundle args = new Bundle();
        args.putString("agrs1", param1);
        fragment.setArguments(args);
        return fragment;
    }

    //分类左边导航栏展示
    @Override
    public void showFLLeftData(List<SYNavBean.DataBean> data) {
      Log.d(TAG, "showFLLeftData: "+data);

            this.list=data;
            LeftAdapter leftAdapter=new LeftAdapter(getContext(),data);
            fl_left.setAdapter(leftAdapter);


            int cid = data.get(0).getCid();
            this.cid=cid+"";


        flPresenter.showRightToView(new FLModel(),this);









    }
    //分类右边导航栏展示
    @Override
    public void showFLRightData(List<ClassBean.DataBean> data) {

        Log.d(TAG, "showFLRightData: "+data);

        RightAdapter adapter=new RightAdapter(getContext(),data);
        fl_right.setAdapter(adapter);

    }

    @Override
    public String getCid() {
        return this.cid;
    }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值