RecyclerView添加头部
来源:互联网 发布:手机版刷屏软件 编辑:程序博客网 时间:2024/05/17 08:31
一、Adapter中数据
package com.example.jiangshuncongykcs.adapter;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.bumptech.glide.Glide;import com.example.jiangshuncongykcs.JsonBean;import com.example.jiangshuncongykcs.R;import java.util.List;/** * Created by */public class MyAdapter extends RecyclerView.Adapter<MyAdapter.mViewHolder> { private List<JsonBean.DataBean> list; private Context context; private View mHeaderView; public static final int TYPE_HEADER = 0; public static final int TYPE_NORMAL = 1; public MyAdapter(List<JsonBean.DataBean> list, Context context) { this.list = list; this.context = context; } @Override public mViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if(mHeaderView != null && viewType == TYPE_HEADER) return new mViewHolder(mHeaderView); View inflate = View.inflate(context, R.layout.item, null); mViewHolder holder = new mViewHolder(inflate); return holder; } @Override public void onBindViewHolder(mViewHolder holder, int position) { JsonBean.DataBean dataBean = list.get(position); if(getItemViewType(position) == TYPE_HEADER) return; if(holder instanceof mViewHolder) { Glide.with(context).load(dataBean.getUserImg()).into(holder.iv_icon); holder.tv_msg.setText(dataBean.getIntroduction()); } } public void setHeaderView(View headerView) { mHeaderView = headerView; notifyItemInserted(0); } public View getHeaderView() { return mHeaderView; } @Override public int getItemCount() { return list.size(); } @Override public int getItemViewType(int position) { if(mHeaderView == null) return TYPE_NORMAL; if(position == 0) return TYPE_HEADER; return TYPE_NORMAL; } class mViewHolder extends RecyclerView.ViewHolder{ ImageView iv_icon; TextView tv_msg; public mViewHolder(View itemView) { super(itemView); iv_icon = itemView.findViewById(R.id.iv_icon); tv_msg = itemView.findViewById(R.id.tv_msg); } }}二、Fragment中
package com.example.jiangshuncongykcs;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v7.widget.DividerItemDecoration;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 com.bumptech.glide.Glide;import com.example.jiangshuncongykcs.adapter.MyAdapter;import com.google.gson.Gson;import com.jcodecraeer.xrecyclerview.XRecyclerView;import com.stx.xhb.xbanner.XBanner;import com.stx.xhb.xbanner.transformers.Transformer;import java.io.IOException;import java.util.ArrayList;import java.util.List;import okhttp3.Call;import okhttp3.Callback;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Response;/** * Created by 蒋順聪 on 2017/10/25. */public class Fragment1 extends Fragment{ private View view; private XBanner vp_viewpager; private List<String> list = new ArrayList<>(); private XRecyclerView rv_recyclerview; private int page = 1; List<JsonBean.DataBean> data2 = new ArrayList<>(); private MyAdapter adapter; private View view2; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = View.inflate(getContext(), R.layout.fragment1_layout, null); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initview(); initdata(); // 为XBanner绑定数据 vp_viewpager.setData(list, null); // XBanner适配数据 vp_viewpager.setmAdapter(new XBanner.XBannerAdapter() { @Override public void loadBanner(XBanner banner, View view, int position) { Glide.with(getContext()).load(list.get(position)).into((ImageView) view); } }); // 设置XBanner的页面切换特效 vp_viewpager.setPageTransformer(Transformer.Default); // 设置XBanner页面切换的时间,即动画时长 vp_viewpager.setPageChangeDuration(500); initmsg(page); } private void initmsg(int page2) { OkHttpClient intance = OkHttpUtils.getIntance(); FormBody.Builder builder = new FormBody.Builder(); builder.add("sign","C7548DE604BCB8A17592EFB9006F9265"); builder.add("pageSize","20"); builder.add("gender","2"); builder.add("ts","1871746850"); builder.add("page",page2+""); Request request = new Request.Builder().url(API.url).post(builder.build()).build(); intance.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { System.out.println("请求出错了"); } @Override public void onResponse(Call call, Response response) throws IOException { if(response != null && response.isSuccessful()){ String string = response.body().string(); JXJson(string); } } }); } private void JXJson(String string) { JsonBean jsonBean = new Gson().fromJson(string, JsonBean.class); List<JsonBean.DataBean> data = jsonBean.getData(); data2.addAll(data); getActivity().runOnUiThread(new Runnable() { @Override public void run() { if(adapter == null){ adapter = new MyAdapter(data2,getContext()); rv_recyclerview.setAdapter(adapter); }else{ adapter.notifyDataSetChanged(); } //为Recycler添加头部 setHeader(rv_recyclerview); } }); } private void initdata() { list.add("http://img3.imgtn.bdimg.com/it/u=1875076909,3610813998&fm=27&gp=0.jpg"); list.add("http://img5.imgtn.bdimg.com/it/u=2832476711,2379932980&fm=27&gp=0.jpg"); list.add("http://img5.imgtn.bdimg.com/it/u=1944582709,2686578056&fm=27&gp=0.jpg"); list.add("http://img3.imgtn.bdimg.com/it/u=1708842930,3481574449&fm=27&gp=0.jpg"); } private void initview() { view2 = View.inflate(getContext(), R.layout.addhead, null); vp_viewpager = view2.findViewById(R.id.vp_viewpager); rv_recyclerview = view.findViewById(R.id.rv_recyclerview); rv_recyclerview.setLayoutManager(new LinearLayoutManager(getContext())); rv_recyclerview.addItemDecoration(new DividerItemDecoration(getContext(),DividerItemDecoration.VERTICAL)); rv_recyclerview.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { //刷新操作 data2.clear(); adapter = null; page = 1; initmsg(page); rv_recyclerview.refreshComplete(); } @Override public void onLoadMore() { //加载更多的操作 page++; initmsg(page); rv_recyclerview.loadMoreComplete(); } }); } //添加头部的方法 private void setHeader(XRecyclerView view) { adapter.setHeaderView(view2); }}
阅读全文
0 0
- RecyclerView添加头部
- recyclerview 添加头部脚步
- RecyclerView添加头部尾部
- RecyclerView简单添加头部
- RecyclerView添加头部
- RecyclerView添加头部
- Android RecyclerView添加头部
- 给RecyclerView添加头部
- RecyclerView添加头部和底部
- RecyclerView的添加头部布局
- RecyclerView添加头部和尾部
- Android RecyclerView添加Header头部
- RecyclerView添加头部文件:RecyclerViewHeader
- RecyclerView添加头部和底部
- 添加头部脚部RecyclerView
- RecyclerView添加头部和尾部
- RecyclerView 添加头部和尾部布局
- RecyclerView LayoutManager分析 添加头部尾部
- 二维数组中的查找(数组 查找)
- 记录生命中坑过我的那些人
- CDH5(Cloudera5.7.1)集群安装
- 看完一个在校大学生的 Java 学习历程,我觉得我还能学得更多
- 控件的边框设置
- RecyclerView添加头部
- 树状数组
- Django自动化运维管理平台
- 分享个绝地求生吃鸡图生成器,装逼利器!!
- RecyclerView点击切换布局
- Date类型转换dataFormat类型取出来的时间时分秒为什么都是0或者后面有个.0
- 金蝶问题
- Gulp教程(1)-基础总结
- hive--基础操作