我在我的应用中使用了TabLayout和ViewPager。每当我滑动页面时,我想要更改ActionBar标题。我已经能够在某种程度上做到这一点。我面临的问题是,在应用程序启动时,操作栏上显示的标题是我的应用程序的标题。当我向后和向后滑动时,标题将成为我指定的(正确的)。
假设我的应用程序的标题是'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 :(得分:0)
您的public void onPageSelected(int position)
将在设置时调用。您需要将磁贴设置为默认选择。
在设置侦听器后甚至之前调用setTitile()
方法,选择第一个标题或默认选项卡标题。
假设您的默认(第一个)标题是"收藏夹" 你可以打电话
setTitle("Favorites");
作为上述代码的第一行或最后一行。