您的位置:首页 > 其它

ViewPager+PagerAdapter

2016-04-27 20:20 330 查看
步骤:

1、在主界面中插入一个ViewPager组件

2、新建几个xml布局文件,这是左右滑动时显示的界面

3、获取布局磊,并加载上面的三个布局,返回View对象

LayoutInflater inflater = getLayoutInflater();//第一种
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);//第二种
//第三种
LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view=inflater.inflate(R.layout.xxx,null);


4、新建一个List<View> 数组来存放上面的几个View对象

5、创建PagerAdapter适配器必须重写方法

isViewFromObject(View arg0, Object arg1)、

getCount()、

destroyItem(ViewGroup container, int position, Object object)

Object instantiateItem(ViewGroup container, int position)

5、为ViewPager设置适配器

主要代码如下:

MainActivity.class

public class MainActivity extends FragmentActivity {
private ViewPager viewPager;
private PagerAdapter pagerAdapter;
private List<View> list;
private LayoutInflater inflater;
private View view1,view2,view3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initView();
}
private void  initView(){
viewPager=(ViewPager)findViewById(R.id.viewpager);
list=new ArrayList<>();
inflater=inflater.from(MainActivity.this);
view1=inflater.inflate(R.layout.tab01, null);
view2=inflater.inflate(R.layout.tab02, null);
view3=inflater.inflate(R.layout.tab03,null);
list.add(view1);
list.add(view2);
list.add(view3);
pagerAdapter= new PagerAdapter() {
//返回滑动的视图数
@Override
public int getCount() {
return list.size();
}
//销毁指定位置的View
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(list.get(position));
}
//初始化布局, 将当前视图添加到container中,返回视图
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(list.get(position));
return list.get(position);
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
};
viewPager.setAdapter(pagerAdapter);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: