Использование вкладок для изменения фрагмента и панели инструментов - PullRequest
0 голосов
/ 09 мая 2018

Я использовал переключатель для создания вкладок и Фрагмент для изменения страниц с помощью вкладок. Теперь я хочу иметь заявление, чтобы сказать, если пользователь нажимает один, например, позицию 0, как чаты. Фрагмент моей панели инструментов изменяется.

что я не знаю, так это то, как я могу поместить оператор if в свой класс результатов SectionsPagerAdapter с вкладками, чтобы изменить панели инструментов, которые я создал ранее. Я сделал несколько операторов if на моем mViewPager или mTabLayout, но не сработал.

Моя активность для SectionsPagerAdapter:

     class SectionsPagerAdapter extends FragmentPagerAdapter{
            public SectionsPagerAdapter(FragmentManager fm) {
                super( fm );
            }

        @Override
        public Fragment getItem(int position) {

            switch (position) {
                case 0:
                    ChatsFragment chatsFragment = new ChatsFragment();
                    return chatsFragment;

                case 1:
                    ViewFragment viewFragment = new ViewFragment();
                    return viewFragment;

                case 2:
                    AccountFragment accountFragment = new AccountFragment();
                    return accountFragment;


                    default:
                        return null;



            }
        }
   @Override
    public int getCount() {
        return 3;
    }

    public CharSequence getPageTitle(int position){
        switch (position){

            case 0:
                return "Chats";

            case 1:
                return "View";

            case 2:
                return "Account";

            default:
                    return null;

        }

    }
}

Мой код на главной странице:

mViewPager=(ViewPager)findViewById( R.id.main_tabPager );
mSectionPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager() );
        mViewPager.setAdapter( mSectionPagerAdapter );
        mTabLayout =(TabLayout) findViewById( R.id.main_tabs );
        mTabLayout.setupWithViewPager( mViewPager );

1 Ответ

0 голосов
/ 09 мая 2018

Я решаю свою проблему.

   mTabLayoutListener.addOnTabSelectedListener( new TabLayout.OnTabSelectedListener() {


     @Override
     public void onTabSelected(TabLayout.Tab tab) {
      int position = tab.getPosition();
       if (position ==0){
        //toolbar
             mToolbar = (Toolbar) findViewById(R.id.main_page_toolbar);
             setSupportActionBar(mToolbar);
             getSupportActionBar().setTitle("ViV");
 }
 else   if (position ==1){
 //toolbar
         mToolbar = (Toolbar) findViewById(R.id.main_page_toolbar);
         setSupportActionBar(mToolbar);
         getSupportActionBar().setTitle("Vi");
     }
else if (position ==2){
  //toolbar
    mToolbar = (Toolbar) findViewById(R.id.main_page_toolbar);
   setSupportActionBar(mToolbar);
   getSupportActionBar().setTitle("V");
   }

  }

    @Override
      public void onTabUnselected(TabLayout.Tab tab) {

 }

     @Override
     public void onTabReselected(TabLayout.Tab tab) {

       }


});
...