Problem Description
In iOS you can add an eventlistener that will update the icon every time you switch between different tabs in a tabgroup. When you run this same code in android, the icon never changes.
Code Example
// this sets the background color of the master UIView (when there are no windows/tab groups on it)
Titanium.UI.setBackgroundColor('#000');
// create tab group
var tabGroup = Titanium.UI.createTabGroup();
//
// create base UI tab and root window
//
var win1 = Titanium.UI.createWindow({
title:'Tab 1',
backgroundColor:'#fff'
});
var tab1 = Titanium.UI.createTab({
icon:'KS_nav_views.png',
active_icon:'KS_nav_ui.png',
inactive_icon:'KS_nav_views.png',
title:'Tab 1',
window:win1
});
tab1.addEventListener('focus',function(){
tab1.setIcon(tab1.active_icon);
});
tab1.addEventListener('blur',function(){
tab1.setIcon(tab1.inactive_icon);
})
var label1 = Titanium.UI.createLabel({
color:'#999',
text:'I am Window 1',
font:{fontSize:20,fontFamily:'Helvetica Neue'},
textAlign:'center',
width:'auto'
});
win1.add(label1);
//
// create controls tab and root window
//
var win2 = Titanium.UI.createWindow({
title:'Tab 2',
backgroundColor:'#fff'
});
var tab2 = Titanium.UI.createTab({
icon:'KS_nav_ui.png',
title:'Tab 2',
window:win2
});
var label2 = Titanium.UI.createLabel({
color:'#999',
text:'I am Window 2',
font:{fontSize:20,fontFamily:'Helvetica Neue'},
textAlign:'center',
width:'auto'
});
win2.add(label2);
//
// add tabs
//
tabGroup.addTab(tab1);
tabGroup.addTab(tab2);
// open tab group
tabGroup.open();
Add this code to a new project's app.js, run it on iOS. See the change. Now try in android, the icon never updates.
Pull pending https://github.com/appcelerator/titanium_mobile/pull/3914 Make sure to test the fix for both old style tabs and the new style tabs (targetSdkVersion >= 11 in manifest)
Tested with: SDK: 3.1.0.v20130312015656 Studio: 3.1.0.201303091040 Device: Android emulator OS: OSX 10.7.5 Works well with Android as well.
Tested with: SDK: 3.1.0.v20130312015656 Studio: 3.1.0.201303091040 Device: Nexus 7(v 4.1) OS: OSX 10.7.5