android中ViewPager结合Fragment进行无限滑动

android中ViewPager结合Fragment进行无限滑动,第1张

概述实现ViewPager结合Fragment实现无限循环切换,这里也是在适配器里面进行的,当然使用滑动监听也能够实现

实现VIEwPager结合Fragment实现无限循环切换,这里也是在适配器里面进行的,当然使用滑动监听也能够实现

import androID.support.v4.app.Fragment;import androID.support.v4.app.FragmentManager;import androID.support.v4.app.FragmentPagerAdapter;import androID.vIEw.VIEwGroup;import java.util.ArrayList;public class adapter extends FragmentPagerAdapter{  private ArrayList<Fragment> fragmentList;  public adapter(FragmentManager fm)  {    super(fm);  }  public adapter(FragmentManager fm,ArrayList<Fragment> fragmentList)  {    super(fm);    this.fragmentList=fragmentList;  }  @OverrIDe  public Fragment getItem(int position)  {    //在这里不处理position的原因是因为getItem方法在    //instantiateItem方法中调用。只要在调用前处理    //position即可,以免重复处理    return fragmentList.get(position);  }  @OverrIDe  public int getCount()   {    return Integer.MAX_VALUE;  }  @OverrIDe  public int getItemposition(Object object)   {    return super.getItemposition(object);  }  @OverrIDe  public Object instantiateItem(VIEwGroup container,int position)   {    //处理position。让数组下标落在[0,fragmentList.size)中,防止越界    position = position % fragmentList.size();    return super.instantiateItem(container,position);  }}

经过实际检验,要传进4个fragment,否则往右边滑动会出现问题,原因不知......

想要实现答题界面的翻页效果便可以采用这种方法,可以建立一个ReadFragment,然后new 出4个这个Fragment的对象。不同页面的共同的处理可以直接在ReadFragment里头实现,翻页的时候每一页需要改变的参数可以在滑动监听器里获取这4个对象来实现。

    Fragment a=new ReadFragment();    Fragment b=new ReadFragment();    Fragment c=new ReadFragment();    Fragment d=new ReadFragment();    List=new ArrayList<Fragment>();    List.add(a);    List.add(b);    List.add(c);    List.add(d);    readVIEwPager.setAdapter(new adapter(getSupportFragmentManager(),List));
readVIEwPager.setonPagechangelistener(new VIEwPager.OnPagechangelistener()    {      @OverrIDe      public voID onPageScrolled(int position,float positionOffset,int positionOffsetPixels)      {}      @OverrIDe      public voID onPageSelected(int position)      {        //处理position。让position落在[0,fragmentList.size)中,防止数组越界        position = position % List.size();        ReadFragment fragment= (ReadFragment) List.get(position); //获得此时选中的fragment        fragment.refreshState(); //翻页的时候每个页面需要改变的参数使用这个方法来实现,这个方法在ReadFragment里面,修饰器得使用public        ...      }      @OverrIDe      public voID onPageScrollStateChanged(int state)      {}    });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的android中ViewPager结合Fragment进行无限滑动全部内容,希望文章能够帮你解决android中ViewPager结合Fragment进行无限滑动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存