android中ViewPager結(jié)合Fragment進行無限滑動
實現(xiàn)ViewPager結(jié)合Fragment實現(xiàn)無限循環(huán)切換,這里也是在適配器里面進行的,當然使用滑動監(jiān)聽也能夠?qū)崿F(xiàn)
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方法中調(diào)用。只要在調(diào)用前處理 //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。讓數(shù)組下標落在[0,fragmentList.size)中,防止越界 position = position % fragmentList.size(); return super.instantiateItem(container, position); } }
經(jīng)過實際檢驗,要傳進4個fragment,否則往右邊滑動會出現(xiàn)問題,原因不知......
想要實現(xiàn)答題界面的翻頁效果便可以采用這種方法,可以建立一個ReadFragment,然后new 出4個這個Fragment的對象。不同頁面的共同的處理可以直接在ReadFragment里頭實現(xiàn),翻頁的時候每一頁需要改變的參數(shù)可以在滑動監(jiān)聽器里獲取這4個對象來實現(xiàn)。
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)中,防止數(shù)組越界 position = position % list.size(); ReadFragment fragment= (ReadFragment) list.get(position); //獲得此時選中的fragment fragment.refreshState(); //翻頁的時候每個頁面需要改變的參數(shù)使用這個方法來實現(xiàn),這個方法在ReadFragment里面,修飾器得使用public ... } @Override public void onPageScrollStateChanged(int state) {} });
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Android中TabLayout+ViewPager 簡單實現(xiàn)app底部Tab導航欄
- Android自定義ViewPagerIndicator實現(xiàn)炫酷導航欄指示器(ViewPager+Fragment)
- Android ViewPager實現(xiàn)輪播圖效果
- Android實現(xiàn)基于ViewPager的無限循環(huán)自動播放帶指示器的輪播圖CarouselFigureView控件
- Android ViewPager加載圖片效果
- Android中ViewPager獲取當前顯示的Fragment
- 詳解Android_性能優(yōu)化之ViewPager加載成百上千高清大圖oom解決方案
- Android實現(xiàn)Tab布局的4種方式(Fragment+TabPageIndicator+ViewPager)
- Android畫廊效果之ViewPager顯示多個圖片
- Android使用自定義PageTransformer實現(xiàn)個性的ViewPager動畫切換效果
相關文章
android實現(xiàn)倒計時功能(開始、暫停、0秒結(jié)束)
這篇文章主要為大家詳細介紹了android實現(xiàn)倒計時功能,開始、暫停、0秒結(jié)束,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09android 使用 IJKPlayer 播放視頻流的實現(xiàn)代碼
這篇文章主要介紹了android 使用 IJKPlayer 播放視頻流,這需要借助 IAndroidIO 這個接口,也可以用于播放本地文件,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-11-11android項目從Eclipse遷移到Android studio中常見問題解決方法
android項目從Eclipse遷移到Android studio中經(jīng)常會遇到一些問題,本文提供了Android studio使用中常見問題解決方法2018-03-03Android中實現(xiàn)為TextView添加多個可點擊的文本
這篇文章主要介紹了Android中實現(xiàn)為TextView添加多個可點擊的文本,可實現(xiàn)類似Android社交軟件顯示點贊用戶并通過用戶名稱進入該用戶主頁的功能,是非常實用的技巧,需要的朋友可以參考下2014-09-09Android開發(fā)之EditText框輸入清理工具類示例
這篇文章主要介紹了Android開發(fā)之EditText框輸入清理工具類,涉及Android事件監(jiān)聽及輸入框清理相關操作技巧,需要的朋友可以參考下2018-01-01