# Titanium.UI.RefreshControl

The RefreshControl is a representation of the native iOS UIRefreshControl and Android SwipeRefreshLayout.

Availability
6.2.0
3.2.0
9.2.0

# 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

Availability
6.2.0
3.2.0
9.2.0
tintColor :String | Titanium.UI.Color

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

Availability
3.2.0
9.2.0

The attributed title of the control.

Title text is only supported on iOS. Android will ignore this property.

# Methods

# beginRefreshing

Availability
6.2.0
3.2.0
9.2.0
beginRefreshing() void

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

Availability
6.2.0
3.2.0
9.2.0
endRefreshing() void

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

Availability
6.2.0
3.2.0
9.2.0

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

Availability
6.2.0
6.0.0
9.2.0

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.