// Forked from https://gist.github.com/2417902 to fix a small bug // ----- function PagingControl(scrollableView){ var pages = []; var page; var numberOfPages = scrollableView.getViews().length; // Configuration var pageColor = "#c99ed5"; var container = Titanium.UI.createView({ height: 60 }); // Go through each of the current pages available in the scrollableView for (var i = 0; i < numberOfPages; i++) { page = Titanium.UI.createView({ borderRadius: 4, width: 8, height: 8, left: 15 * i, backgroundColor: pageColor, opacity: 0.5 }); // Store a reference to this view pages.push(page); // Add it to the container container.add(page); } // Mark the initial selected page pages[scrollableView.getCurrentPage()].setOpacity(1); // Attach the scroll event to this scrollableView, so we know when to update things scrollableView.addEventListener("scroll", onScroll); // Reset page control to default page when scollableView refresh scrollableView.addEventListener("postlayout", onPostLayout); function onScroll(event){ // Go through each and reset it's opacity for (var i = 0; i < numberOfPages; i++) { pages[i].setOpacity(0.5); } // Bump the opacity of the new current page pages[event.currentPage].setOpacity(1); }; function onPostLayout(event) { // Go through each and reset it's opacity for(var i = 0; i < numberOfPages; i++) { pages[i].setOpacity(0.5); } // Bump the opacity of the new current page pages[scrollableView.currentPage].setOpacity(1); }; return container; }; module.exports = PagingControl;