android - 动态更改选项卡文本标题

标签 android

我有一个 tablayout,在 viewpager 下有四个选项卡。我想在滑动选项卡时更改文本标题。我的问题是我无法分别处理制表符。

比如四个tab的标题分别是1、2、3、4,滑动时会显示1、9、3、4或者1、2、9、4...

但在我的例子中是 7、9、7、7 或 7、7、9、7...

我试着把它写在 onTabUnselected 函数上。显然我没有变量来控制它。

接下来我能做什么?

部分程序:

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);

最佳答案

试试这个

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

关于android - 动态更改选项卡文本标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41482145/

相关文章:

android - Firebase - 如何使用将在 firebase 测试实验室上运行的命令行运行特定的 Android UI 测试类?

android - 无法为 quickBlox 的新 android SDK 获取视频

Android Binder 清除调用者身份

android - Apk 被 Samsung Apps 拒绝

android - 在 SQLite 中按选择参数的顺序对查询结果进行排序

java - 请求 PACKAGE_USAGE_STATS 权限

Android - 在支持最低 API 级别 20 或更低级别的应用程序中使用矢量绘图有什么优势?

Android list 使用权限与 Android 设备规范

java - PHP if-else 主体都在执行

android - 在 BrowseFragment 中禁用行缩放/扩展