RefreshControl in listview is lost after switching between winodws.
Opened this issue · 0 comments
RavindraChherke commented
Hi,
I am using this module and it works great on Titanium SDK 5.4.0. I am upgrading my project to support new Titanium SDK 7.0.2. I am using version 2.1.0 of this module.
Issue: I have ListView
with refreshcontrol
in two different windows. First time when I set the window as centerWindow
, refreshcontrol
works fine. But when I move to other window and come back to first one the refreshcontrol
is gone. I don't want to reload the window everytime user switches between windows that's why I am creating and using window instance just once.
Please check the code below. I am not sure if the bug related to this module or related to Titanium SDK. Same code used to work fine with Titanium SDK 5.4.0.
Please help.
Thanks!
Operating System
Name = Mac OS X
Version = 10.13.3
Architecture = 64bit
# CPUs = 8
Memory = 16.0GB
Node.js
Node.js Version = 8.9.1
npm Version = 5.5.1
Titanium CLI
CLI Version = 5.0.14
node-appc Version = 0.2.41
Titanium SDKs
7.0.2.GA
Version = 7.0.2
Xcode
9.1 (build 9B55) - Xcode default
Install Location = /Applications/Xcode.app/Contents/Developer
iOS SDKs = 11.1
iOS Simulators = 11.1
Watch SDKs = 4.1
Watch Simulators = 4.1
Supported by TiSDK 7.0.2.GA = yes
EULA Accepted = yes
Teams = none
var NappDrawerModule = require('dk.napp.drawer');
var win1 = openNewNavWindow();
var win2 = openNewNavWindow();
function createAPIExampleWindow() {
var win = Ti.UI.createWindow();
var data = [{
title : 'New Window'
}, {
title : 'New Window2'
}];
var tableView = Ti.UI.createTableView({
data : data,
});
tableView.addEventListener('click', function(e) {
Ti.API.info('isLeftWindowOpen: ' + drawer.isLeftWindowOpen());
switch (e.index) {
case 0:
if (drawer.centerWindow != win1) {
drawer.setCenterWindow(win1);
}
drawer.toggleLeftWindow();
break;
case 1:
if (drawer.centerWindow != win2) {
drawer.setCenterWindow(win2);
}
drawer.toggleLeftWindow();
break;
}
});
win.add(tableView);
return win;
}
function openNewNavWindow() {
var leftBtn = Ti.UI.createButton({
title : 'Left'
});
leftBtn.addEventListener('click', function() {
drawer.toggleLeftWindow();
});
var win = Ti.UI.createWindow({
backgroundColor : '#222',
translucent : true,
extendEdges : [Ti.UI.EXTEND_EDGE_TOP],
title : 'New Nav Window',
barColor : '#FFA',
tintColor : 'yellow',
leftNavButton : leftBtn
});
var counter = 0;
function genData() {
var data = [];
var i = 1;
for ( i = 1; i <= 3; i++) {
data.push({
properties : {
title : 'ROW ' + (counter + i)
}
});
}
counter += 3;
return data;
}
var section = Ti.UI.createListSection();
section.setItems(genData());
var control = Ti.UI.createRefreshControl({
tintColor : 'red'
});
var listView = Ti.UI.createListView({
sections : [section],
refreshControl : control
});
control.addEventListener('refreshstart', function(e) {
Ti.API.info('refreshstart');
setTimeout(function() {
Ti.API.debug('Timeout');
section.appendItems(genData());
control.endRefreshing();
}, 2000);
});
win.add(listView);
var navController = Ti.UI.iOS.createNavigationWindow({
window : win
});
return navController;
}
var mainWindow = win1;
var drawer = NappDrawerModule.createDrawer({
leftWindow : createAPIExampleWindow(),
centerWindow : mainWindow,
rightWindow : Ti.UI.createWindow({
backgroundColor : '#FFF'
}),
closeDrawerGestureMode : NappDrawerModule.CLOSE_MODE_ALL,
openDrawerGestureMode : NappDrawerModule.OPEN_MODE_ALL,
showShadow : false, //no shadow in iOS7
leftDrawerWidth : 200,
rightDrawerWidth : 120,
statusBarStyle : NappDrawerModule.STATUSBAR_WHITE, // remember to set UIViewControllerBasedStatusBarAppearance to false in tiapp.xml
orientationModes : [Ti.UI.PORTRAIT, Ti.UI.UPSIDE_PORTRAIT]
});
drawer.addEventListener('centerWindowDidFocus', function() {
Ti.API.info('Center did focus!');
});
drawer.addEventListener('centerWindowDidBlur', function() {
Ti.API.info('Center did blur!');
});
drawer.addEventListener('windowDidOpen', function(e) {
Ti.API.info('windowDidOpen');
});
drawer.addEventListener('windowDidClose', function(e) {
Ti.API.info('windowDidClose');
});
drawer.open();
Ti.API.info('isAnyWindowOpen: ' + drawer.isAnyWindowOpen());