Skip to content

Instantly share code, notes, and snippets.

@ptquang86
Last active August 29, 2015 14:11
Show Gist options
  • Save ptquang86/5e2e4563838575ca08a0 to your computer and use it in GitHub Desktop.
Save ptquang86/5e2e4563838575ca08a0 to your computer and use it in GitHub Desktop.
pull to refresh for Listview
var feedsController,
refreshControl,
loadMoreDisabled;
loadFeeds();
function loadFeeds() {
// this is a ListView
feedsController = Alloy.createController('feeds', {});
loadPullToRefresh();
}
function loadPullToRefresh() {
var feedsView = feedsController.getView();
if (OS_IOS) {
refreshControl = Ti.UI.createRefreshControl();
refreshControl.addEventListener('refreshstart', getFeeds);
feedsView.refreshControl = refreshControl;
$.getView().add(feedsView);
} else {
// get this module from
// https://github.com/raymondkam/Ti.SwipeRefreshLayout
// or
// https://github.com/iskugor/Ti.SwipeRefreshLayout
var swipeRefreshModule = require('com.rkam.swiperefreshlayout');
refreshControl = swipeRefreshModule.createSwipeRefresh({ view: feedsView });
refreshControl.addEventListener('refreshing', getFeeds);
$.getView().add(refreshControl);
}
}
function removePullToRefresh() {
if (OS_IOS) {
var feedsView = feedsController.getView();
feedsView.refreshControl = undefined;
refreshControl = null;
} else {
loadMoreDisabled = true;
}
}
function refreshFinish() {
if (OS_IOS) {
refreshControl.endRefreshing();
} else {
refreshControl.setRefreshing(false);
}
}
function getFeeds() {
if (OS_ANDROID && loadMoreDisabled === true) {
refreshFinish();
return;
}
setTimeout(showFeeds, 5000);
}
function showFeeds() {
// TODO: append feed
refreshFinish();
//TODO: test Remove pull to refresh
if (0) {
removePullToRefresh();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment