中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在android應用中利用ViewPager與Fragment實現無限滑動功能

發布時間:2020-11-26 16:51:51 來源:億速云 閱讀:358 作者:Leah 欄目:移動開發

本篇文章為大家展示了如何在android應用中利用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實現無限滑動功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合水县| 西充县| 南澳县| 社旗县| 同江市| 兰西县| 东乡| 凤山县| 仙居县| 岑巩县| 青岛市| 阳曲县| 临漳县| 平舆县| 新竹县| 泉州市| 鹿邑县| 新龙县| 昭苏县| 阿鲁科尔沁旗| 阿拉善左旗| 山阴县| 苏州市| 鹤壁市| 宜黄县| 安陆市| 泰顺县| 临澧县| 朔州市| 元谋县| 炎陵县| 昌图县| 乃东县| 通山县| 黔东| 郸城县| 清原| 志丹县| 新闻| 余江县| 龙川县|