Recyclerview多条目+tablayout

依赖---------------------------------------------------------------------------------------------------
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
compile 'com.android.support:design:26.0.0-alpha1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.youth.banner:banner:1.4.9'compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'compile 'com.squareup.okhttp:okhttp:2.4.0'compile 'com.squareup.okio:okio:1.5.0'compile 'com.google.code.gson:gson:2.8.2'
------------------------------tablayout-------------主界面-----------------------------------------------------
public class Zhujiemian extends AppCompatActivity{

    private String[] s;
    private TabLayout tl;
    private ViewPager vp;
    private List<Fragment> lists;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.zhujiemian);

        tl = (TabLayout) findViewById(R.id.tl);
        vp = (ViewPager) findViewById(R.id.vp);
        s = new String[]{"最新日报","专栏","热门","主题日报"};
        fgzhuanlan zhuanlan = new fgzhuanlan();
        fgremen remen = new fgremen();//创建的fragment
        fgribao ribao = new fgribao();
        fgzhuti zhuti = new fgzhuti();
        lists = new ArrayList<>();
        lists.add(ribao);
        lists.add(zhuanlan);
        lists.add(remen);
        lists.add(zhuti);

        tl.setupWithViewPager(vp);
        vp.setAdapter(new Mypager(getSupportFragmentManager()));
    }

    class Mypager extends FragmentPagerAdapter {

        public Mypager(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return lists.get(position);
        }

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

        @Override
        public CharSequence getPageTitle(int position) {
            return s[position];
        }
    }
}
--------------------------------------------Recyclerview----------------------------------------------
import android.graphics.Bitmap;
import android.media.Image;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
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.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.administrator.zhifubao.ImageLoaderBanner;
import com.example.administrator.zhifubao.MainActivity;
import com.example.administrator.zhifubao.R;
import com.example.administrator.zhifubao.bean.Mybean;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.squareup.okhttp.Call;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;
import com.youth.banner.Banner;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import static android.R.attr.type;
import static android.R.id.list;
import static com.example.administrator.zhifubao.R.id.ban;
import static com.example.administrator.zhifubao.R.id.right;

/**
 * Created by Administrator on 2017/10/25.
 */

public class fgribao extends Fragment {
    public final static int typ_1 = 0;
    public final static int typ_2 = 1;
    private  Banner ban;
    private List<String> img;
    private RecyclerView rv;
    private List<Mybean.ApkBean> apk;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.fgribao, null);
        rv = (RecyclerView) inflate.findViewById(R.id.rv);
        okhttps();
        return inflate;
    }

    public void okhttps(){
        OkHttpClient mOkHttpClient = new OkHttpClient();
//创建一个Request
        final Request request = new Request.Builder()
                .url("http://huixinguiyu.cn/Assets/js/data.js")
                .build();
//new call
        Call call = mOkHttpClient.newCall(request);
//请求加入调度
        call.enqueue(new Callback() {



            @Override
            public void onFailure(Request request, IOException e) {

            }

            @Override
            public void onResponse(Response response) throws IOException {
                String htmlStr =  response.body().string();
                Gson gson = new Gson();
                Mybean mybean = gson.fromJson(htmlStr, Mybean.class);
                apk = mybean.getApk();
                img = new ArrayList<String>();
                for (int i = 0; i< apk.size(); i++){
                    img.add(apk.get(i).getIconUrl());
                }
               getActivity().runOnUiThread(new Runnable() {
                   @Override
                   public void run() {
                       rv.setLayoutManager(new LinearLayoutManager(getActivity()));
                       Ribaoadapter adapter = new Ribaoadapter();
                       rv.setAdapter(adapter);
                   }
               });
            }
        });
    }

    class Ribaoadapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            if(viewType==typ_1){
                View v1 = View.inflate(getActivity(),R.layout.mybanner,null);
                ViewHoudler1 vh1 = new ViewHoudler1(v1);
                return vh1;
            }else if(viewType==typ_2){
                View v2 = View.inflate(getActivity(),R.layout.item2,null);
                ViewHoudler2  vh2 =  new ViewHoudler2(v2);
                return vh2;
            }
            return null;
        }

        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
            int type = getItemViewType(position);
            if (type == typ_1) {//如果是第一种情况显示banner轮播图
                ban.setImageLoader(new ImageLoaderBanner());
                ban.setImages(img);
                ban.start();
            }else if(type==typ_2){
                    ((ViewHoudler2)holder).tv1.setText(apk.get(position).getName());
                    ((ViewHoudler2)holder).tv2.setText(apk.get(position).getFrom());
                    ((ViewHoudler2)holder).tv3.setText(apk.get(position).getCategoryName());
                loderImage(apk.get(position).getIconUrl(),((ViewHoudler2)holder).iv);
            }
        }

        @Override
        public int getItemViewType(int position) {
            if(position==0){
                return typ_1;
            }else {
                return typ_2;
            }
        }

        @Override
        public int getItemCount() {
            return 1+apk.size()-1;
        }

        class ViewHoudler2 extends  RecyclerView.ViewHolder{

            private final ImageView iv;
            private final TextView tv1;
            private final TextView tv2;
            private final TextView tv3;

            public ViewHoudler2(View itemView) {
                super(itemView);
                iv = (ImageView) itemView.findViewById(R.id.iv);
                tv1 = (TextView) itemView.findViewById(R.id.tv1);
                tv2 = (TextView) itemView.findViewById(R.id.tv2);
                tv3 = (TextView) itemView.findViewById(R.id.tv3);
            }
        }

        class ViewHoudler1 extends RecyclerView.ViewHolder {

            public ViewHoudler1(View itemView) {
                super(itemView);
                ban = itemView.findViewById(R.id.ban);
            }
        }

        public  void loderImage(String url,ImageView imageView){
            ImageLoaderConfiguration configuration = ImageLoaderConfiguration
                    .createDefault(getActivity());

            DisplayImageOptions options = new DisplayImageOptions.Builder()
                    .showImageOnLoading(R.mipmap.ic_launcher) //设置图片下载期间显示的图片
                    .showImageOnFail(R.mipmap.ic_launcher)// 设置图片uri有错误,解密的过程中发生错误显示的图片
                    .cacheInMemory(true)//设置下载的图片是否缓存到内存中
                    .cacheOnDisk(true)// 设置下载的图片是否缓存到SD卡中
                    .bitmapConfig(Bitmap.Config.RGB_565)
                    .build();

            ImageLoader instance = ImageLoader.getInstance();
            instance.init(configuration);
            //通过单例的模式,拿到对象,设置我们自定义配置的ImageLoader的配置信息
            instance.displayImage(url, imageView ,options);

            //compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
        }
    }
}
--------------------------------------------------Banner-------------------------------------------------------

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值