点击切换布局

1.布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".activity.MainActivity"
    android:orientation="vertical">

   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="50dp"
       android:orientation="horizontal"
       >
       <TextView
           android:layout_width="match_parent"
           android:layout_height="50dp"
           android:text="首页"
           android:textSize="20sp"
        android:layout_weight="1"
           android:textColor="#000"/>
     <ImageView
         android:id="@+id/qiehuan"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:src="@drawable/linear"/>


   </LinearLayout>


    <com.jcodecraeer.xrecyclerview.XRecyclerView
        android:id="@+id/xrecyclerview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

线性:

<?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:id="@+id/linear"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/icon"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/ic_launcher_background"/>
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical">
       <TextView
           android:id="@+id/title"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"

           android:textColor="#000"
           android:text="sss"/>
       <TextView
           android:id="@+id/price"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"

           android:textColor="#000"
           android:text="sss"/>
   </LinearLayout>

</LinearLayout>


//网格

<?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:id="@+id/linear"
    android:orientation="vertical">
    <ImageView
        android:id="@+id/icon"
        android:layout_width="100dp"
        android:layout_height="100dp"
       />

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#000"
        android:text="sss"/>
    <TextView
        android:id="@+id/price"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#000"
        android:text="sss"/>
</LinearLayout>

2.主页面

package com.bw.ymy.products.activity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.ImageView;

import com.bw.ymy.products.R;
import com.bw.ymy.products.adapter.MyBase;
import com.bw.ymy.products.bean.UserBean;
import com.bw.ymy.products.presenter.IPresenterILP;
import com.bw.ymy.products.view.IView;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity implements View.OnClickListener,IView {

    private XRecyclerView xRecyclerView;
    private ImageView qiehaun;
    private MyBase adapter;
    private int page=1;
    private IPresenterILP iPresenterILP;
    private  boolean isLinear=true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取资源id
        xRecyclerView=findViewById(R.id.xrecyclerview);
        qiehaun=findViewById(R.id.qiehuan);
        //实列化
        iPresenterILP=new IPresenterILP(this);
        //点击
        qiehaun.setOnClickListener(this);

        xRecyclerView.setLoadingMoreEnabled(true);
        xRecyclerView.setPullRefreshEnabled(true);
        xRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                page=1;
                loda();
            }

            @Override
            public void onLoadMore() {
                loda();

            }
        });
        isLayoutManager();
    }

    //切换
    public  void  isLayoutManager()
    {
            if(isLinear)
            {
                LinearLayoutManager layoutManager=new LinearLayoutManager(this);
                xRecyclerView.setLayoutManager(layoutManager);
            }else
            {
                GridLayoutManager gridLayoutManager=new GridLayoutManager(this,2);
                xRecyclerView.setLayoutManager(gridLayoutManager);
            }
            adapter=new MyBase(this,isLinear);
            xRecyclerView.setAdapter(adapter);
            isLinear=!isLinear;
            page=1;
            loda();

    }
    public  void loda()
    {
        Map<String,String> map=new HashMap<>();
        map.put("keywords","手机");
        map.put("page",page+"");
        iPresenterILP.getRequest("http://www.zhaoapi.cn/product/searchProducts",map,UserBean.class);
    }


    @Override
    public void onClick(View v) {
        switch (v.getId())
        {
            case  R.id.qiehuan:
                isLayoutManager();
                break;
        }

    }

    @Override
    public void onsuccess(Object data) {
        if(data instanceof  UserBean)

        {
            UserBean userBean= (UserBean) data;
            if(page==1)
            {
                adapter.setList(userBean.getData());
            }else
            {
               adapter.addList(userBean.getData());
            }
            page++;
            //停止
            xRecyclerView.refreshComplete();
            xRecyclerView.loadMoreComplete();
        }

    }
}

3.Adapter

package com.bw.ymy.products.adapter;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.bw.ymy.products.R;
import com.bw.ymy.products.bean.UserBean;
import com.jcodecraeer.xrecyclerview.XRecyclerView;

import java.util.ArrayList;
import java.util.List;

public class MyBase  extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private List<UserBean.DataBean> mdata;
    private Context context;
    private  boolean isLinear;

    public MyBase(Context context, boolean isLinear) {
        this.context = context;
        this.isLinear = isLinear;
        mdata=new ArrayList<>();
    }
    //上拉
    public  void setList(List<UserBean.DataBean> datas)
    {
        mdata.clear();
        mdata.addAll(datas);
        notifyDataSetChanged();
    }

    //下拉
    public  void addList(List<UserBean.DataBean> datas)
    {

        mdata.addAll(datas);
        notifyDataSetChanged();
    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        XRecyclerView.ViewHolder viewHolder=null;
        //判断是网格还是线性布局
        if(isLinear)
        {
            View view=LayoutInflater.from(context).inflate(R.layout.item1,viewGroup,false);
                viewHolder=new ViewHolder(view);
        }else
        {
            View view=LayoutInflater.from(context).inflate(R.layout.item2,viewGroup,false);
            viewHolder=new ViewHolder(view);
        }
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
        UserBean.DataBean bean=mdata.get(i);
        ViewHolder viewHolder1= (ViewHolder) viewHolder;
        //获取文字
        viewHolder1.title.setText(bean.getTitle());
        viewHolder1.price.setText(bean.getPrice()+"");
        //照片
        String images=mdata.get(i).getImages();
        String[] split=images.split("\\|");
        Glide.with(context).load(split[0]).into(viewHolder1.icon);
    }

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



    class ViewHolder extends RecyclerView.ViewHolder {
        private ImageView icon;
        private TextView title,price;
        private LinearLayout linearLayout;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            icon=itemView.findViewById(R.id.icon);
            title=itemView.findViewById(R.id.title);
            price=itemView.findViewById(R.id.price);
            linearLayout=itemView.findViewById(R.id.linear);
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值