0

我在我的应用程序中使用了TabLayout和ViewPager。我想在每次滑动页面时更改ActionBar标题。我在某种程度上能够这样做。我面临的问题是,在应用程序启动时,操作栏上显示的标题是我的应用程序的标题。当我滑过并返回时,标题变成了我分配的内容(正确的)。在TabLayout中启动应用程序时,特定选项卡的默认“选择”

因此,假设我的应用程序的标题是'ABC'。在应用程序启动时,默认操作栏标题显示为“ABC”。当我滑过并返回到tab1时,会显示正确的标题。

我想这可能是因为在应用程序启动时,实际上没有选择Tab。因此,代码不起作用。

我也使用了setCurrentItem方法,它在这种情况下没有什么好处,因为它设置了默认页面,但实际上并没有帮助'选择'特定的选项卡。

这里的代码片断,我用

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     public void onPageScrollStateChanged(int state) {} 
     public void onPageScrolled(int position, float positionOffset, int 
    positionOffsetPixels) {} 

     public void onPageSelected(int position) { 
      final String[] tabTitles={"Favorites", "Friends", "Nearby"}; 
      tabLayout.setNextFocusRightId(position); 
      setTitle(tabTitles[position]); 
     } 
    }); 

回答

0

public void onPageSelected(int position)将在设置被调用。您需要将您的图块设置为默认选择。

只需在设置侦听器后甚至在设置第一个标题或默认选项卡选定标题之前调用setTitile()方法即可。

假设你的默认(第一个)的标题是“收藏夹” 你只需调用

setTitle("Favorites"); 

正如你上面的代码第一个或最后一行。

相关问题