ViewPage固定每页加载的数量。进行翻页
来源:互联网 发布:铜陵电视台网络直播 编辑:程序博客网 时间:2024/06/05 10:50
1,需求: 首页,第一次请求所有数据,但是后台没有进行分页,只能前端来做了。每滑动一次viewpage 就加载6条数据。
2,主页代码。
public class MainActicity extends BaseActivity{ public static List<TestItem> sList=new ArrayList<>();//進來把數據放在全局。 public static int sPage=0;//全局 页数,等于 viewpage的下标。 public static int sPageSize=6;//每頁取出的數量、 private List<TestItem> lista; //網絡請求后的數據。 private ViewPager vp; private MainFragmentAadapter mAdapter; private List<Integer> list;// Fragmeng 的數量 @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity1_main); initView(); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { sPage=position; Log.e("", "onPageScrolled: 这是ViewPage的第"+position ); } @Override public void onPageSelected(int position) { Log.e("", "onPageScrolled: 这是ViewPage的第2222"+position ); } @Override public void onPageScrollStateChanged(int state) { } }); } /*http://192.168.2.250:8888/svn/wisdom_hotel/apk*/ private void initView() { lista=new ArrayList<>(); for (int i = 0; i <28 ; i++) { if (i%sPageSize==0||i%(sPageSize+sPage)==3){//相隔4个,每一页 这个就要加1、 lista.add(new TestItem(1,"王小明"+i)); }else{ lista.add(new TestItem(2,"王小明"+i)); } } sList=lista;//存贮到全局。 vp= (ViewPager) findViewById(R.id.viewpage); //根据总页数 确定循环的次数。 list=new ArrayList<>();//這個傳到 適配器裏面。 告訴適配器要生成幾個 Fragment. // int page=sList.size()/sPageSize;//頁數=sList/每頁抓取的數據、 if (sList.size()%sPageSize!=0){//說明還有多的。 page=page+1; } for (int i = 0; i <page ; i++) {//頁數、 list.add(i); } mAdapter=new MainFragmentAadapter(getSupportFragmentManager(),list); vp.setAdapter(mAdapter); }
3,
public class MainFragment extends BaseFragment { private RecyclerView reView; private MainAdapter adapter; private TextView tvName; private int pageaaa;//根據 分析出來的椰樹。 private List<TestItem> list;//这个是临时 数据。 全局数据 @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_main, container, false); initView(view); return view; } //初始化。 private void initView(View view) { pageaaa = getArguments().getInt("list"); getPageDate(pageaaa); reView = view.findViewById(R.id.rectvle_view); adapter = new MainAdapter(list); StaggeredGridLayoutManager linearLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.HORIZONTAL); linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); reView.setLayoutManager(linearLayoutManager); reView.setAdapter(adapter); } public static Fragment getFragment(Bundle bundle) { //核心 这里写个全局方法。在适配器那边调用。 MainFragment oneFragment = new MainFragment(); oneFragment.setArguments(bundle); return oneFragment; } /** * 每页取6个数据。 * * @param page viewpage 的第几页 */ public void getPageDate(int page) { list = new ArrayList<>(); int s = page * sPageSize;//每页开始取数据的标记。 页数*数量、 if ((sList.size() - s) < sPageSize && (sList.size() - s) > 0) {//如果最后一页 要获取的数量,小于6或者 大于0 说明 有数据、但是 是多少? for (int i = s; i < sList.size() - s; i++) { list.add(sList.get(i)); } } else { for (int i = s; i < s + sPageSize; i++) { list.add(sList.get(i)); } } }}
4, Fragment Adapter 适配器
public class MainFragmentAadapter extends FragmentPagerAdapter{ List<Integer> list; public MainFragmentAadapter(FragmentManager fm,List<Integer> list) { super(fm); this.list=list; } @Override public Fragment getItem(int position) { Bundle bundle=new Bundle(); bundle.putInt("list",list.get(position)); return MainFragment.getFragment(bundle);//直接调用Fragment中的全局方法 } @Override public int getCount() { return list.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) {// super.destroyItem(container, position, object); 注释掉不会 重复加载。只加载一遍,懒加载的话,要用到。 }}
阅读全文
0 0
- ViewPage固定每页加载的数量。进行翻页
- 使用jQuery进行客户端无刷新的翻页且可以每页显示记录条数
- Viewpage的使用(每项)
- 水晶报表进行页小计、固定行分页、分页中每页显示紧贴式页脚的方法
- ViewPage 翻页滑动
- ul通过input标签来控制翻页 可以任意设置每页的li个数
- WindowsPhone7 翻页加载的方法
- 使Datawindow每页打印固定行
- 使Datawindow每页打印固定行
- 使Datawindow每页打印固定行
- Datawindow中每页打印固定行
- FastReport.net每页打印固定行数
- Datawindow中每页打印固定行
- dw每页打印固定行数
- 使Datawindow每页打印固定行
- Ext 3 列表下方翻页插件, 选择每页[]条
- 如何设置按组分页同时每页的行数为固定的行数
- 固定水晶报表每页显示的行数两种方法
- 练习题
- CentOS7 安装 Consul
- Requests库 进阶
- 数据库的事务
- IObjectContextAdapter接口
- ViewPage固定每页加载的数量。进行翻页
- Spring核心类和原理分析
- 如何把一段逗号分割的字符串转换成一个数组?
- 图解FTP服务器搭建(WINDOWS SERVER 2008)--第一篇
- APP深度性能测试&性能提升实践
- SQL笔记(一)
- Invalid DN syntax (34)
- ADB常用命令汇总
- java反射---类加载器