У меня есть действие, в котором есть TabHost, содержащий набор TabSpecs, каждый со списком, содержащим элементы, которые будут отображаться на вкладке. Когда создается каждый TabSpec, я устанавливаю значок, который будет отображаться в заголовке вкладки.
TabSpec создаются таким образом в методе 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();
Есть ли способ заменить отображаемый значок без удаления и повторного создания всех вкладок?