【问题标题】:Change the tabs text title in dynamic动态更改选项卡文本标题
【发布时间】:2019-05-06 20:03:13
【问题描述】:

我在 viewpager 下有一个带有四个选项卡的选项卡布局。我想在滑动标签时更改文本标题。我的问题是我不能分别处理标签。

例如四个标签的标题是 1、2、3、4 ,当我滑动时它会显示为 1、9、3、4 或 1、2、9、4...

但在我的情况下是 7、9、7、7 或 7、7、9、7...

我尝试将它写在 onTabUnselected function 上。显然我没有控制它的变量。

接下来我能做什么?

部分节目:

private ViewPager viewPager;

viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayoutHomePage));
        tabLayoutHomePage.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                int id=tab.getPosition();
                switch (id){
                    case 0:
                        tab.setText("9");
                        break;
                    case 1:
                        tab.setText("9");
                        break;
                    case 2:
                        tab.setText("9");
                        break;
                    case 3:
                        tab.setText("9");
                        break;
                }
                    viewPager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                int id=tab.getPosition();
                switch (id){
                    case 0:
                        tab.setText("7");
                        break;
                    case 1:
                        tab.setText("7");
                        break;
                    case 2:
                        tab.setText("7");
                        break;
                    case 3:
                        tab.setText("7");
                        break;
                }
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        }); 

原来声明四个标签的标题

tabLayoutHomePage = (TabLayout) view.findViewById(R.id.tabLayoutHomePage);
    tabLayoutHomePage.addTab(tabLayoutHomePage.newTab().setText(R.string.bloodPressure));
    tabLayoutHomePage.addTab(tabLayoutHomePage.newTab().setText(R.string.bloodSugar));
    tabLayoutHomePage.addTab(tabLayoutHomePage.newTab().setText(R.string.bodyWeight));
    tabLayoutHomePage.addTab(tabLayoutHomePage.newTab().setText(R.string.vaccine));
    tabLayoutHomePage.setTabGravity(TabLayout.GRAVITY_FILL);

【问题讨论】:

  • 所以你想要的是 1,9,3,4 或 7,9,7,7
  • 这是1、9、3、4 7、9、7、7 只是为了测试我得到了解决方案,感谢您的关注。
  • 随时欢迎好友

标签: android


【解决方案1】:

试试这个

tabLayoutHomePage.getTabAt(position).setText("new Text");

【讨论】:

  • 你把我吵醒了。为什么我没想到,谢谢@Mh Sami
  • 很好,这很适合我的问题。非常感谢
【解决方案2】:

这也应该有效

mSlidingTabLayout.setTabText(position,name)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    相关资源
    最近更新 更多