ViewPager的使用


在布局文件中定义ViewPager的位置

	<android.support.v4.view.ViewPager
	    android:layout_height="fill_parent"
	    android:layout_width="fill_parent"
	    android:id="@+id/viewpager"
	   />

ViewPager pager=(ViewPager)findViewById(R.id.viewpager);
接着pager.setAdapter(new MyPagerAdapter(views));
其中views是个List<View>的集合
        views=new ArrayList<View>();
        LayoutInflater mLi = LayoutInflater.from(this);
        View view1 = mLi.inflate(R.layout.view1, null);
        View view2 = mLi.inflate(R.layout.view2, null);
        View view3 = mLi.inflate(R.layout.view3, null);
        views.add(view3);
        views.add(view2); 
        views.add(view1);

Activity做的事就这么多,接下来就是适配器了。
MyPagerAdapter继承于PagerAdapter,默认要重写2个方法,不过如果要正确实现划屏换面功能至少需重写4个方法。
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return views.size();
	}

	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		// TODO Auto-generated method stub
		return arg0==arg1;
	}
	@Override
	public Object instantiateItem(ViewGroup container, int position) {
		container.addView(views.get(position));
		return views.get(position);
	}
	@Override
	public void destroyItem(ViewGroup container, int position, Object object) {
		container.removeView(views.get(position));
	}
如上:第一个方法表示要显示的view的个数。第二个方法的返回值决定了划屏之后屏幕画不画View
  第三个方法是给屏幕填充view,第四个方法是滑到另一个view时之前的viewdestroy掉。
由于没有源码,不知道其中是怎么执行的,所以接下来全是猜测了:
1.我把第2个方法改为返回false,屏幕没东西,改为true,3个view全叠加到第一个界面了。
2.我把container.addView(views.get(position));去掉,3个view全不显示。
3.我把views.get(position)中的position改为固定值,显示就乱了,而且只显示一个view,就是views.get(position)的view。

由上面的测试,我猜测第2个方法中的arg0为第三个方法中的container的container.getChildAt(position)返回值,arg1为第三个方法中的返回值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值