Andorid学习笔记 12 ViewPager

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());
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值