现在的位置: 首页 > 综合 > 正文

“快速递”开发历程(一)ViewPager+Fragment滑动或按钮实现切换效果

2018年01月23日 ⁄ 综合 ⁄ 共 2050字 ⁄ 字号 评论关闭
     学习Android有一个月左右的时间,还是一名小白,接到大神的指示去做一款查询快递的软件,基本上属于边做边学,过程中有不少彷徨和收获,现在加以整理。
    (一)ViewPager+Fragment实现滑动加按钮
    首先介绍ViewPager这个类,这是android.support.v4.view包中的类(此包位于android-support-v4.jar中)。 好了,下面说用法吧。 必须要在布局文件中添加ViewPager:然后获得它的id。
<android.support.v4.view.ViewPager
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/button"
        android:layout_weight="1" >
    </android.support.v4.view.ViewPager>
接下来就该提到FragmentPagerAdapter(android.support.v4.app),
private static class MyAdapter extends FragmentPagerAdapter{

		private List<Fragment> myFragments;
		
		public MyAdapter(android.support.v4.app.FragmentManager fm,List<Fragment> myFragments) {
			super(fm);
			this.myFragments = myFragments;
		}

		@Override
		public android.support.v4.app.Fragment getItem(int arg0) {
			return myFragments.get(arg0);
		}

		@Override
		public int getCount() {
			return myFragments.size();
		}

	}
大家一定注意到了MyAdapter的构造方法中有一个FragmentManager类,这个类就有的说了:如果你的MainActivity继承自Activity,那么你就要使用getFragmentManager()方法获得FragmentManager;如果你的MainActivity继承自FragmentActivity,那么你就要使用getSupportFragmentManager()方法获得FragmentManager。下面我们反着说一遍,假设你继承了Activity(android.app),你又通过getFragmentManager()方法获得了FragmentManager(android.app),好,现在都很顺利,接下来你自定义了一个FragmentPagerAdapter类,在构造方法中传入FragmentManager(android.app),你会发现Eclipse报错说,于是乎,这个时候你才发现FragmentPagerAdapter是在android.support.v4.app包中的,所以你还是老老实实地继承FragmentActivity(android.support.v4.app)吧!
最后,还要给ViewPager设置监听器:这个没什么难度。
myViewPager.setOnPageChangeListener(new OnPageChangeListener() {
			
			@Override
			public void onPageSelected(int arg0) {
				
			}
			
			@Override
			public void onPageScrolled(int arg0, float arg1, int arg2) {
				
			}
			
			@Override
			public void onPageScrollStateChanged(int arg0) {
				
			}
		});

    通过滑动来切换Fragment已经完成了,那么,怎样通过按钮实现呢?ViewPager提供了这样一个方法:setCurrentItem(),用来设置当前的Fragment。这里放置了一个按钮并监听它。

@Override
	public void onClick(View v) {
		switch(v.getId()){
		case R.id.button1:
			myViewPager.setCurrentItem(FIRST);
			break;
		case R.id.button2:
			myViewPager.setCurrentItem(SECOND);
			break;
		case R.id.button3:
			myViewPager.setCurrentItem(THIRD);
			break;
		}
		
	}
    到此,就可以实现ViewPager+Fragment滑动或按钮实现切换效果了!
    由于在下还是新手,所以有不对的地方请各位多多指教,有其他方法的大神们可以贴出来讨论讨论。

抱歉!评论已关闭.