MainActivty
- 添加fragment
for (int i = 0; i < 6; i++) {
mList.add(MyFragment.newInstence(i));
}
FragmentManager supportFragmentManager = getSupportFragmentManager();
adapter = new MyViewpagerAdapter(supportFragmentManager, mList);
viewpager.setOffscreenPageLimit(10);
viewpager.setAdapter(adapter);
- MyViewpagerAdapter.java
public class MyViewpagerAdapter extends FragmentStatePagerAdapter {
private ArrayList<MyFragment> mList_fragment;
public MyViewpagerAdapter(FragmentManager fm, ArrayList<MyFragment> mList_fragment) {
super(fm);
this.mList_fragment = mList_fragment;
}
public MyViewpagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return mList_fragment.get(position);
}
@Override
public int getCount() {
return mList_fragment.size();
}
@Override
public int getItemPosition(Object object) {
return PagerAdapter.POSITION_NONE;
}
}
Fragment
- 傳入數據
public static MyFragment newInstence(int index) {
MyFragment fragment = new MyFragment();
Bundle bundle = new Bundle();
bundle.putInt("index", index);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = getContext();
index = getArguments().getInt("index");
setStr(index + "");
}
操作數據改變界面
以下操作均在activity中
設置當前顯示頁
viewpager.setCurrentItem(3)修改當前頁的內容
int currentItem = viewpager.getCurrentItem();
mList.get(currentItem).setTextContext(“這是什麼?”);刪除當前頁
int currentItem = viewpager.getCurrentItem();
mList.remove(currentItem);
adapter.notifyDataSetChanged();添加頁
mList.add(MyFragment.newInstence(mList.size()));
adapter.notifyDataSetChanged();
viewpager.setCurrentItem(0);