Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-12747] Android: setIcon in Ti.UI.Tab is failing to show the updated icon

GitHub Issuen/a
TypeBug
PriorityHigh
StatusClosed
ResolutionFixed
Resolution Date2013-03-01T18:28:11.000+0000
Affected Version/sRelease 3.0.0
Fix Version/sRelease 3.1.0, 2013 Sprint 05 API, 2013 Sprint 05
ComponentsAndroid
LabelsSupportTeam, TabGroup, qe-testadded
ReporterMauro Parra-Miranda
AssigneeVishal Duggal
Created2013-02-15T01:06:18.000+0000
Updated2014-06-19T12:43:55.000+0000

Description

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.

Comments

  1. Vishal Duggal 2013-02-27

    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)
  2. Anshu Mittal 2013-03-12

    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.
  3. Anshu Mittal 2013-03-12

    Tested with: SDK: 3.1.0.v20130312015656 Studio: 3.1.0.201303091040 Device: Nexus 7(v 4.1) OS: OSX 10.7.5

JSON Source