# Titanium.UI.RefreshControl
The RefreshControl is a representation of the native iOS UIRefreshControl and Android SwipeRefreshLayout.
# Overview
You use a RefreshControl
with a Titanium.UI.TableView, Titanium.UI.ListView or Titanium.UI.ScrollView object.
It provides an alternate method to implement pull to refresh functionality provided by
Titanium.UI.TableView.headerPullView and Titanium.UI.ListView.pullView properties.
Use the Titanium.UI.createRefreshControl method to create a RefreshControl.
Important iOS 10+ Note: If you use the RefreshControl inside a Titanium.UI.Window that has the largeTitleEnabled
property
set to true
, you also need to set the extendEdges
property to either [Ti.UI.EXTEND_EDGE_TOP]
or [Ti.UI.EXTEND_EDGE_ALL]
in order to prevent a flickering of the refresh spinner. In Titanium SDK 8+, the extendEdges
property will be set to [Ti.UI.EXTEND_EDGE_ALL]
by default to match the native behavior.
# Examples
# Basic Pull To Refresh
A basic sample showing the usage of refreshstart event with endRefreshing functionality.
const win = Ti.UI.createWindow();
let counter = 0;
function genData() {
const data = [];
for (let i = 1; i <= 3; i++) {
data.push({ properties:{ title: `ROW ${counter + i}` } });
}
counter += 3;
return data;
}
const section = Ti.UI.createListSection();
section.items = genData();
const control = Ti.UI.createRefreshControl({
tintColor: 'red'
});
const listView = Ti.UI.createListView({
sections: [section],
refreshControl: control
});
control.addEventListener('refreshstart', () => {
Ti.API.info('refreshstart');
setTimeout(() => {
Ti.API.debug('Timeout');
section.appendItems(genData());
control.endRefreshing();
}, 2000);
});
win.add(listView);
win.open();
# Properties
# tintColor
The tint color for the refresh control, as a color name or hex triplet.
For information about color values, see the "Colors" section of Titanium.UI.
# title
The attributed title of the control.
Title text is only supported on iOS. Android will ignore this property.
# Methods
# beginRefreshing
Tells the control that a refresh operation was started programmatically.
Call this method when an external event source triggers a programmatic refresh of your table. This method updates the state of the refresh control to reflect the in-progress refresh operation. When the refresh operation ends, be sure to call the endRefreshing method to return the control to its default state. Note: When triggering the refreshing programmatically, the styling is not applied and the refresh control is tinted in the native gray.
Returns
- Type
- void
# endRefreshing
Tells the control that a refresh operation has ended.
Call this method at the end of any refresh operation (whether it was initiated programmatically or by the user) to return the refresh control to its default state.
Returns
- Type
- void
# Events
# refreshstart
Fired in response to a user initiated an action to refresh the contents of the table view, list view or scroll view.
Properties
Name | Type | Description |
---|---|---|
bubbles | Boolean | This is false. This event does not bubble |
source | Object | Source object that fired the event. |
type | String | Name of the event fired. |
bubbles | Boolean | True if the event will try to bubble up if possible. |
cancelBubble | Boolean | Set to true to stop the event from bubbling. |
# refreshend
Fired in response to a user finished action to refresh the contents of the table view, list view or scroll view.
Properties
Name | Type | Description |
---|---|---|
bubbles | Boolean | This is false. This event does not bubble |
source | Object | Source object that fired the event. |
type | String | Name of the event fired. |
bubbles | Boolean | True if the event will try to bubble up if possible. |
cancelBubble | Boolean | Set to true to stop the event from bubbling. |