首页 > 代码库 > 分页加载的Fragment
分页加载的Fragment
1 package com.z.fragment; 2 3 import android.os.Bundle; 4 import android.os.Environment; 5 import android.support.annotation.Nullable; 6 import android.support.v4.app.Fragment; 7 import android.support.v4.widget.SwipeRefreshLayout; 8 import android.support.v7.widget.LinearLayoutManager; 9 import android.view.LayoutInflater; 10 import android.view.View; 11 import android.view.ViewGroup; 12 import android.widget.Toast; 13 14 import com.google.gson.Gson; 15 import com. .MyApp; 16 import com.z. .R; 17 import com.z..adapter.AppNewAdapter; 18 import com.z..bean.HomeNewData; 19 import com.z..utils.ApiUrls; 20 import com.z..utils.DefaultCallBack; 21 import com.z..utils.HttpUtils; 22 import com.z..view.AutoLoadRecylerView; 23 24 import butterknife.BindView; 25 import butterknife.ButterKnife; 26 27 public class HomeFragment extends Fragment { 28 @BindView(R.id.rv) 29 AutoLoadRecylerView rv; 30 @BindView(R.id.refresh_layout) 31 SwipeRefreshLayout refreshLayout; 32 private AppNewAdapter newAdapter; 33 private int currPageIndex = 0; 34 @Nullable 35 @Override 36 public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) { 37 //1.布局xml|使用Code 38 int layoutId = R.layout.fragment_home_new; 39 //2.阅读接口文档 40 //3.可在调试模式获取json 41 currPageIndex = 0; 42 HttpUtils.get(ApiUrls.HOME + "?index=" + currPageIndex, callback); 43 //6.支持下拉刷新与滚动加载 44 View view = inflater.inflate(layoutId, container, false); 45 ButterKnife.bind(this, view); 46 //编写下拉刷新事件的处理 47 refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 48 @Override 49 public void onRefresh() { 50 // 1.清空数据 51 // 2.添加新获取的首页数据 52 // 3.列表刷新 53 Toast.makeText(getContext(), "下拉刷新中", Toast.LENGTH_SHORT).show(); 54 currPageIndex = 0; 55 HttpUtils.get(ApiUrls.HOME + "?index=" + currPageIndex, callback); 56 57 } 58 }); 59 rv.setLoadMoreListener(new AutoLoadRecylerView.loadMoreListener() { 60 //滚动到底部可以加载下一页数据 61 @Override 62 public void onl oadMore() { 63 if (currPageIndex == 2) { 64 Toast.makeText(getContext(), "没有更多记录", Toast.LENGTH_SHORT).show(); 65 } else { 66 Toast.makeText(getContext(), "加载更多中..", Toast.LENGTH_SHORT).show(); 67 currPageIndex += 1; 68 HttpUtils.get(ApiUrls.HOME + "?index=" + currPageIndex, callback); 69 } 70 } 71 }); 72 return view; 73 } 74 DefaultCallBack callback = new DefaultCallBack() { 75 @Override 76 public void onStart(int what) { 77 super.onStart(what); 78 if (currPageIndex == 0) { 79 refreshLayout.setRefreshing(true); 80 } 81 } 82 @Override 83 public void onFinish(int what) { 84 super.onFinish(what); 85 if (currPageIndex == 0) { 86 refreshLayout.setRefreshing(false); 87 } 88 } 89 90 @Override 91 protected void createView(String json) { 92 //4.使用Gsonformat 93 HomeNewData data = http://www.mamicode.com/new Gson().fromJson(json, HomeNewData.class); 94 System.out.println(data); 95 if (currPageIndex == 0) //首页逻辑 96 { 97 if (newAdapter == null) {//1. 98 //5.高级控件的显示 99 rv.setLayoutManager(new LinearLayoutManager(getContext())); 100 //设置适配器 101 newAdapter = new AppNewAdapter(data.list); 102 rv.setAdapter(newAdapter); 103 } else { 104 newAdapter.getData().clear(); 105 //添加新获取的首页数据 106 newAdapter.getData().addAll(data.list); 107 newAdapter.notifyDataSetChanged(); 108 Toast.makeText(getContext(), "下拉刷新成功", Toast.LENGTH_SHORT).show(); 109 } 110 } else { 111 //添加 下一页数据 112 newAdapter.getData().addAll(data.list); 113 newAdapter.notifyDataSetChanged(); 114 Toast.makeText(getContext(), "加载更多完成", Toast.LENGTH_SHORT).show(); 115 //加载完成,设置loading 为false可以加载下一页 116 rv.setLoading(false); 117 } 118 } 119 }; 120 }
分页加载的Fragment
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。