Day12 ViewPager
- ViewPager
ViewPager
- 添加ViewPager控件
- 为ViewPager添加page页面(通过PagerAdapter)
- ViewPager与ActionBar(Tabs)交互
添加ViewPager控件
ViewPager存在于V4支持包
android.support.v4.view.ViewPager
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
为ViewPager添加page页面(通过PagerAdapter)
private void initFragments() {
// TODO 初始化数据源对象,实例化ViewPager中显示的Fragment
fragments=new ArrayList<Fragment>();
fragments.add(InfoFragment.newInstance("头条"));
fragments.add(InfoFragment.newInstance("体育"));
fragments.add(InfoFragment.newInstance("军事"));
fragments.add(InfoFragment.newInstance("国内"));
fragments.add(InfoFragment.newInstance("国际"));
fragments.add(InfoFragment.newInstance("文艺"));
//实例化显示Fragment的适配器
adapter=new InfoFragmentAdapter(getSupportFragmentManager());
vPager.setAdapter(adapter);
}
适配器
- FragmentPagerAdapter
FragmentStatePagerAdapter
FragmentPagerAdapter
只销毁UI界面,不会销毁Fragment对象
FragmentStatePagerAdapter
彻底销毁Fragment对象
ViewPager与ActionBar(Tabs)交互
通过设置ViewPaer的滑动切换事件监听和Tab项的点击事件监听实现
TabListener
OnPageChangeListener
selectTab()
setCurrentItem()
private void viewPagerEvent() {
vPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
//选择指定位置的ActionBar的Tab项
mBar.selectTab(mBar.getTabAt(position));
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
(implements TabListener)
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
vPager.setCurrentItem(tab.getPosition());
}