Java 如何修复工具栏在选择其他选项卡之前不更改标题的问题?

Java 如何修复工具栏在选择其他选项卡之前不更改标题的问题?,java,android,android-toolbar,Java,Android,Android Toolbar,我在我的应用程序中遇到了一个问题。我希望该应用程序在不同的选项卡工具栏上显示不同的标题,我完全做到了。问题是,当我运行应用程序时,我需要切换选项卡以使setTitle正常工作。我希望默认情况下,当应用程序运行时,它应该将工具栏标题显示为主页 这是我的密码 public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { private

我在我的应用程序中遇到了一个问题。我希望该应用程序在不同的选项卡工具栏上显示不同的标题,我完全做到了。问题是,当我运行应用程序时,我需要切换选项卡以使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");

我通过使用getSupportActionBar.setTitleHome代替Debanjan Vlogs解决了这个问题。因为我有一个问题,它在运行时不会更改标题,并在“主页”选项卡操作栏上显示应用程序名称。所以我想把Debanjan Vlogs的名字改为Home,一切都按照我的预期进行了

你能详细说明一下还是给我们举个例子?@Ab ok。正如您所看到的,当您打开youtube appolder版本时,您会看到工具栏显示home,当您滑动选项卡时,文本会发生变化。我想实现同样的目标,但我的代码似乎有问题,所以当应用程序打开时,它不会显示在主页上。而是显示应用程序名称。当我更改选项卡时,标题就会更改。应该是注释。@Ab_uu为什么?这实际上是一个正确的答案。如果将来有人面临同样的问题,他/她会找到答案,不会深入评论。@Ab_u我应该吗?我在哪里可以找到这样的规则?规则不能解释一切。我不是说这一定是一个评论。这应该是一个评论。同样地,只链接的问题是令人厌恶的,只有代码的答案也是令人厌恶的。