Viewpager使用FragmentAdapter

来源:互联网 发布:unity3d怎么播放动画 编辑:程序博客网 时间:2024/05/17 23:47
使用FragmentAdapter的步骤如下:
  • 新建一个子类让其继承FragmentAdapter,并且实现其中必须实现的方法
  • 其中要想添加标题 还需添加public CharSequence getPageTitle(int position)方法
  • 该类必须实现一个构造器,其中第一参数为FragmentManager,需要在mainActivity中用getFragmentManager传进来,如果使用的是support.v4 的包,则应该使用对应的方法传入
  • 最后在main函数中声明Adapter对象,并且将Adapter加载到viewpager中来
example:
--------------------------------------------------------------------------------------------------------------------------
package com.example.viewpagertest;

import java.util.List;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class MyFragmentAdapter extends FragmentPagerAdapter{

 private List<Fragment> fraglist;
 private List<String> titlelist;
 public MyFragmentAdapter(FragmentManager fm,List<Fragment> fraglist,List<String> titlelist) {
  super(fm);
  this.fraglist=fraglist;
  this.titlelist=titlelist;
  // TODO Auto-generated constructor stub
 }

 @Override
 public Fragment getItem(int arg0) {
  // TODO Auto-generated method stub
  return fraglist.get(arg0);
 }

 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return fraglist.size();
 }

 @Override
 public CharSequence getPageTitle(int position) {
  // TODO Auto-generated method stub
  return titlelist.get(position);
 }
}
-------------------------------------------------------------------------------------------------------------

FragmentstateAdapter和FrgmentAdapter大致上相同,不同的是前者可以自动创建和销毁item,也就说后者的每次显示必须将所有的item都显示出来,前者则可显示部分。
FragmentstateAdapter需要多实现两个函数
就是instantiateItem和destroyItem....(好像是这两个)

---------------------------------------------------------------------------------------------------------------------------

ViewPager的监听器 OnPagerChangeListenner

 public void onPageScrollStateChanged(int arg0) {
  // TODO Auto-generated method stub
  
 }

 public void onPageScrolled(int arg0, float arg1, int arg2) {
  // TODO Auto-generated method stub
  
 }

 public void onPageSelected(int arg0) {
  // TODO Auto-generated method stub
  Toast.makeText(this,"当前是第"+arg0+"个页面", Toast.LENGTH_SHORT).show();
 }




0 0
原创粉丝点击