针对不同片段的Android PagerAdapter

时间:2015-09-15 02:46:58

标签: android android-fragments android-pageradapter

当有多个正在实现的片段时,使用PagerAdapter或更具体的实现FragmentPagerAdapter或FragmentStatePagerAdapter是一个好主意。在FragmentPagerAdapter的文档中,它说: “当有少数通常更多的静态片段被分页时,这个版本的寻呼机最适合使用,例如一组标签”

目前,我的mainActivity中有一个线性布局,其中有按钮(ImageView)来调用替换方法来更改片段。我希望能够在这些片段之间滑动。例如,在Instagram应用程序中,屏幕底部有一个操作栏。我试图实现类似的功能,但在片段之间使用滑动功能。

1 个答案:

答案 0 :(得分:0)

这就是我使用SlidingTabLayoutSlidingTabStrip所做的工作(只需将它们复制并粘贴到您的项目中)

PagerAdapter mPagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager())
    {
        @Override
        public Fragment getItem(int position)
        {
            // return the Fragment depending on the position
        }

        @Override
        public int getCount()
        {
            // return tab count
        }

        @Override
        public CharSequence getPageTitle(int pos)
        {
            // return page title depending on the position
        }

        @Override
        public int getItemPosition(Object object)
        {
            // Enable refreshing when called notifyDataSetChanged() on the adapter by adding this piece of code.
            return PagerAdapter.POSITION_NONE;
        }
    };

    ViewPager vp_Tabs = (ViewPager) parentView.findViewById(R.id.vp_tabsParent);
    // vp_Tabs.setOffscreenPageLimit(pageCount); // Prevents pages from getting destroyed and re-created.
    vp_Tabs.setAdapter(mPagerAdapter);

    SlidingTabLayout mSlidingTabLayout = (SlidingTabLayout) parentView.findViewById(R.id.slidingTabLayout);
    mSlidingTabLayout.setDistributeEvenly(true); // Makes tabs take equal space

    mSlidingTabLayout.setViewPager(vp_Tabs);