2015-09-15 3 views
0

Рекомендуется использовать PagerAdapter или более конкретную реализацию FragmentPagerAdapter или FragmentStatePagerAdapter, когда реализовано более одного фрагмента. В документации для FragmentPagerAdapter говорится: «Эта версия пейджера лучше всего использовать, когда есть несколько типичных статических фрагментов, которые нужно выгружать, например, набор вкладок«Android PagerAdapter для разных фрагментов

В настоящее время у меня есть линейный макет в моей mainActivity с кнопками (ImageView) в нем, чтобы вызвать метод replace, который изменяет фрагменты. Я хотел бы иметь возможность пронестись между этими фрагментами. Например, в приложении Instagram есть панель действий в нижней части экрана. Я пытаюсь реализовать аналогичную функциональность, но с функцией прокрутки между фрагментами.

ответ

0

Это, как я сделал с помощью SlidingTabLayout и SlidingTabStrip (просто скопировать и вставить их в свой проект)

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); 
Смежные вопросы