我的应用程序遇到问题。我希望该应用程序在不同的选项卡工具栏上显示不同的标题,我完全做到了。问题是当我运行应用程序时,我需要切换选项卡以使 setTitle 工作。我希望默认情况下,当应用程序运行时,它应该将工具栏标题显示为主页。
这是我的代码
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private Toolbar mToolbar;
private TabLayout tabLayout = null;
private ViewPager viewPager = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToolbar = (Toolbar) findViewById(R.id.main_page_toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setTitle("Debanjan Vlogs");
mToolbar.setTitleTextColor(0xFFFFFFFF);
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
viewPager = (ViewPager) findViewById(R.id.viewPager);
//setting the tabs title
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_home_black_24dp));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_video_library));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_live_tv));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_info));
//setup the view pager
final PagerAdapter adapter = new com.joy.skylake.utube.adapters.PagerAdapter(getSupportFragmentManager(),tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case 0:
viewPager.setCurrentItem(0);
mToolbar.setTitle("Home");
break;
case 1:
viewPager.setCurrentItem(1);
mToolbar.setTitle("Playlist");
break;
case 2:
viewPager.setCurrentItem(2);
mToolbar.setTitle("Live");
break;
case 3:
viewPager.setCurrentItem(3);
mToolbar.setTitle("About");
break;
}
viewPager.setCurrentItem(tab.getPosition());
tab.getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
tabLayout.getTabAt(0).getIcon().clearColorFilter();
tab.getIcon().clearColorFilter();
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
有什么解决办法吗?
最佳答案
而不是使用
mToolbar.setTitle("About");
试试这个
getSupportActionBar().setTitle("About");
关于java - 如何修复工具栏在选择另一个选项卡之前不更改标题的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49577106/