У меня есть действие, в котором есть TabHost, содержащий набор спецификаций TabSpec, каждый со списком, содержащим элементы, отображаемые вкладкой. Когда каждый TabSpec создан, я установил значок, который будет отображаться в заголовке вкладки.
TabSpecs создаются таким образом в методе setupTabs()
, который циклично создает необходимое количество вкладок:
TabSpec ts = mTabs.newTabSpec("tab");
ts.setIndicator("TabTitle", iconResource);
ts.setContent(new TabHost.TabContentFactory(
{
public View createTabContent(String tag)
{
...
}
});
mTabs.addTab(ts);
Есть пара случаев, когда я хочу иметь возможность менять значок, который отображается на каждой вкладке во время выполнения моей программы. В настоящее время я удаляю все вкладки и снова вызываю приведенный выше код для их повторного создания.
mTabs.getTabWidget().removeAllViews();
mTabs.clearAllTabs(true);
setupTabs();
Есть ли способ заменить отображаемый значок без удаления и повторного создания всех вкладок?