国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android中ViewPager結合Fragment進行無限滑動

2019-12-12 03:26:41
字體:
來源:轉載
供稿:網友

實現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)      {}    });

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鱼台县| 永康市| 遵义市| 方山县| 明星| 古丈县| 双城市| 阜新市| 开封县| 高要市| 崇文区| 凤翔县| 曲水县| 丰都县| 淮滨县| 香河县| 泸西县| 合江县| 扶余县| 波密县| 兰坪| 庄河市| 栾川县| 布拖县| 成安县| 亳州市| 金溪县| 淅川县| 山东省| 建水县| 肥城市| 乾安县| 马尔康县| 宁津县| 蒲城县| 登封市| 宜春市| 同江市| 苍山县| 神池县| 灵石县|