TabLayout

时间:2017-05-27 13:31:15

标签: android user-interface android-actionbar android-tablayout

我在我的应用中使用了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]);
        }
    });

1 个答案:

答案 0 :(得分:0)

您的public void onPageSelected(int position)将在设置时调用。您需要将磁贴设置为默认选择。

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

假设您的默认(第一个)标题是"收藏夹" 你可以打电话

setTitle("Favorites");

作为上述代码的第一行或最后一行。