【问题标题】:Modify tab indicator dynamically in Android在Android中动态修改标签指示器
【发布时间】:2010-05-29 16:26:22
【问题描述】:

我的应用程序需要动态更新选项卡指示器,我正在尝试通过调用 TabSpec.setIndicator() 来执行此操作,但它不起作用。这是我的代码:

在 TabActivity 的 onCreate 方法中:

tabHost = getTabHost(); 
TabSpec tabSpec = tabHost.newTabSpec("abc");
tabSpec.setIndicator("helloabc");
tabSpec.setContent(new MyViewFactory());
tabHost.addTab(tabSpec);

现在我需要将标签指示符更改为另一个字符串,例如“xyz”

TabSpec tabSpec = MyTabActivity.getTabSpec();
tabSpec.setIndicator("xyz");

但它不起作用。所以我想知道标签指示器添加到标签主机后如何更改它?非常感谢。

解决方案

感谢@CommonsWare,我使用 TabWidget.getChildAt 来制作它,为了您的方便,这是我的代码:

TextView title = (TextView) tabHost.getTabWidget().getChildAt(tabId).findViewById(android.R.id.title)
title.setText("xyz");

【问题讨论】:

  • 我可以这样改变图像指示器吗?

标签: android android-tabhost


【解决方案1】:

我为之前的错误答案道歉,现已删除。

尝试在TabWidget 上使用getChildViewAt()

【讨论】:

  • 如何更改标签栏的图像指示器?
【解决方案2】:

我使用getChildTabViewAt(tabId) 而不是childviewAt(id) 管理多个标签。

【讨论】:

    【解决方案3】:

    试试这个:

     TextView title = (TextView) TabHost.getTabWidget().getChildTabViewAt(tabId).findViewById(android.R.id.title);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多