您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何在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實現無限滑動功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。