我使用switch创建tabbed和Fragment来通过tabbed来更改页面。 现在我想声明如果用户点击一个例如位置0就像聊天片段我的工具栏更改。
我不知道的是,我如何在我的结果类SectionsPagerAdapter选项卡上添加if语句来更改我之前创建的工具栏。 我在我的mViewPager或mTabLayout上做了一些if语句但是没有用。
我对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 );
答案 0 :(得分:0)
我解决了我的问题。
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) {
}
});