# Titanium.UI.ListView

A list view is used to present information, organized in to sections and items, in a vertically-scrolling view.

Availability
3.1.0
3.1.0
9.2.0

# Overview

Android iOS
Android iOS

Use the Titanium.UI.createListView method or <ListView> Alloy element to create a ListView.

A ListView object is a container for Titanium.UI.ListSection objects that are, in turn, containers for Titanium.UI.ListItem objects. This is easily visualized as an Alloy view:

<Alloy>
    <ListView id="list">
        <ListSection>
            <ListItem title="List item 1"></ListItem>
            <ListItem title="List item 2"></ListItem>
            <ListItem title="List item 3"></ListItem>
        </ListSection>
    </ListView>
</Alloy>

For more instructions and examples of using ListView, refer to the ListViews guide (opens new window).

# Creating a List

To create a ListView object using JavaScript, pass an array of ListDataItem objects to the list section's Titanium.UI.ListSection.items property, which creates and adds each array element as a row to a single Titanium.UI.ListSection. Use the ListView's Titanium.UI.ListView.sections property to add the section(s) to the list view.

By default, only the image, title and accessoryType of a list data item are displayed in the list. Refer to the next section for using an item template.

See the "List View Sections" example.

# Customizing the List Items

To create a custom list view, you need to define an ItemTemplate and define each view component you want to add. Use the bindId property of the child template to bind a dictionary property in the item data to a child view component.

Map the template to a style name using the Titanium.UI.ListView.templates property, then use the style name to set the Titanium.UI.ListView.defaultItemTemplate property to globally change all item styles or set the ListDataItem.template property when passing in your list data to apply the template to that one list item or to override the globally defined template.

On iOS, you can specify one of the template constants for the ListDataItem.template property or Titanium.UI.ListView.defaultItemTemplate: Titanium.UI.LIST_ITEM_TEMPLATE_CONTACTS, Titanium.UI.LIST_ITEM_TEMPLATE_SETTINGS or Titanium.UI.LIST_ITEM_TEMPLATE_SUBTITLE.

See Titanium.UI.ListItem for a detailed description of creating list items with a custom item template and see the "List View with Custom Item Template" example for a sample.

# List and Table Views

This section describes the differences between the new list view and the old table view.

ListView is analogous to TableView, ListSection is analogous to TableViewSection, and ListItem is analogous to TableViewRow.

Both list view and table view present data to user as a vertically scrolling list of rows. However, list view uses a data-oriented approach versus table view's view-oriented approach.

List view is designed for performance. One side effect of the design is that you cannot directly manipulate the views--add children, set view properties and bind event callbacks--as you can in TableView. Instead, you interact with list items indirectly, using templates and data items. The next subsection describes how to use list items.

# ListItem versus TableViewRow

With TableView, you can directly add rows to a table view using the data property and its accessors. With TableViewRows, you can directly create a row using the Ti.UI.createTableViewRow and customize its styling by setting its view properties. You can add view subcomponents to the row using the add method.

With ListView, you need to explicitly create a ListSection in order to add a ListItem to a ListView. You cannot directly add a ListItem to a ListView. In a TableView, a TableViewRow can be directly added to a TableView because a TableViewSection is implicitly created and added to the TableView.

A ListItem object is not created in the same method as a TableViewRow. A ListItem is created by passing an array of ListDataItem objects to the ListSection.

You cannot add views to a ListItem using the add method, which could be done with a TableViewRow. To add views to a ListItem, you need to define an ItemTemplate, which is bound to a list data item using the template property.

You cannot explicitly set properties or bind events for a ListItem. You have to set them using the properties dictionary of a ListDataItem or ItemTemplate and the events dictionary of the ItemTemplate or ViewTemplate, respectively.

# API Differences

  • TableViewRow properties: The following properties and their accessors are not available for ListItem: accessibilityLabel, className, editable, hasCheck, hasChild, hasDetail, leftImage, moveable and rightImage.

    • For hasCheck, hasChild, and hasDetail, use the accessoryType property.
    • For leftImage and rightImage, use the image property or create a custom item template.
  • TableViewRow methods: ListItem does not support any methods. Adding views and binding event callbacks are supported through the item template.

  • TableViewSection properties: The following properties and their accessors are not supported by ListSection: rows and rowCount.

    • For rows, use the items property.
    • For rowCount, use the itemCount property. (Not yet implemented.)
  • TableViewSection methods: The following methods are not supported by ListSection: add, remove and rowAtIndex.

    • For rowAtIndex, use the getItemAt method.
    • For add and remove, use the other ListSection methods to manipulate the ListItem objects in the ListSection.
  • TableView properties: The data property and its accessors are not available for ListView. Use the sections property to set the ListSections for a ListView. You cannot directly add ListItem objects to a ListView.

  • TableView methods: The following methods are not available to ListView: appendRow, deleteRow, deselectRow, insertRowAfter, insertRowBefore, selectRow, updateRow, scrollToIndex and selectRow.

    • For scrollToIndex, use the scrollToItem method.
    • For selectRow, use the selectItem method. (Currently implemented only for iOS.)
    • For all other row methods, you cannot manipulate ListItems with a ListView. You have to manipulate them with the ListSection they are contained in.

# List and Scroll Views

As a list view inherently scrolls, it creates a very poor user experience when it contains other scrolling views, such as a Titanium.UI.ScrollableView or Titanium.UI.TextArea. Thus, this layout is strongly discouraged.

# TextFields in Lists with SOFT_INPUT_ADJUST_PAN (Android)

In order to use Titanium.UI.TextField inside ListView, Titanium.UI.Android.SOFT_INPUT_ADJUST_PAN must be set to the window that is containing the ListView, otherwise the Titanium.UI.TextField may not be able to gain focus.

When a Titanium.UI.TextField is placed in a row near the bottom of a ListView, in a window that is configured with Titanium.UI.Android.SOFT_INPUT_ADJUST_PAN, it is expected for the text field to automatically move to a visible position after it is focused and the software keyboard displayed. However, due to a known problem caused by native Android's ListView behavior, the keyboard is likely to completely obscure the text field.

To mitigate this, a ScrollView may be used instead of a list view, as demonstrated in the Titanium.UI.ScrollView, "Scroll View as a Table View", example.

# Editing Support

Editing a ListView through user initiated actions is supported through the following properties.

# Examples

# List View Sections

Creates a list with three sections, each with two rows. Adds two sections to the table before and one after it is rendered.

var win = Ti.UI.createWindow({backgroundColor: 'gray'});
var listView = Ti.UI.createListView();
var sections = [];

var fruitDataSet = [
    {properties: { title: 'Apple'}},
    {properties: { title: 'Banana'}},
];
var fruitSection = Ti.UI.createListSection({ headerTitle: 'Fruits', items: fruitDataSet});
sections.push(fruitSection);

var vegDataSet = [
    {properties: { title: 'Carrots'}},
    {properties: { title: 'Potatoes'}},
];
var vegSection = Ti.UI.createListSection({ headerTitle: 'Vegetables', items: vegDataSet});
sections.push(vegSection);

listView.sections = sections;
win.add(listView);
win.open();

var fishDataSet = [
    {properties: { title: 'Cod'}},
    {properties: { title: 'Haddock'}},
];
var fishSection = Ti.UI.createListSection({ headerTitle: 'Fish', items: fishDataSet});
listView.appendSection(fishSection);

# List View with Custom Item Template

Modifies the previous example to create a list using an item template to customize the view layout.

var win = Ti.UI.createWindow({backgroundColor: 'white'});

// Create a custom template that displays an image on the left,
// then a title next to it with a subtitle below it.
var myTemplate = {
    childTemplates: [
        {                            // Image justified left
            type: 'Ti.UI.ImageView', // Use an image view for the image
            bindId: 'pic',           // Maps to a custom pic property of the item data
            properties: {            // Sets the image view  properties
                width: '50dp', height: '50dp', left: 0
            }
        },
        {                            // Title
            type: 'Ti.UI.Label',     // Use a label for the title
            bindId: 'info',          // Maps to a custom info property of the item data
            properties: {            // Sets the label properties
                color: 'black',
                font: { fontFamily:'Arial', fontSize: '20dp', fontWeight:'bold' },
                left: '60dp', top: 0,
            }
        },
        {                            // Subtitle
            type: 'Ti.UI.Label',     // Use a label for the subtitle
            bindId: 'es_info',       // Maps to a custom es_info property of the item data
            properties: {            // Sets the label properties
                color: 'gray',
                font: { fontFamily:'Arial', fontSize: '14dp' },
                left: '60dp', top: '25dp',
            }
        }
    ]
};

var listView = Ti.UI.createListView({
    // Maps myTemplate dictionary to 'template' string
    templates: { 'template': myTemplate },
    // Use 'template', that is, the myTemplate dict created earlier
    // for all items as long as the template property is not defined for an item.
    defaultItemTemplate: 'template'
});
var sections = [];

var fruitDataSet = [
    // the text property of info maps to the text property of the title label
    // the text property of es_info maps to text property of the subtitle label
    // the image property of pic maps to the image property of the image view
    { info: {text: 'Apple'}, es_info: {text: 'Manzana'}, pic: {image: 'apple.png'}},
    { info: {text: 'Banana'}, es_info: {text: 'Banana'}, pic: {image: 'banana.png'}}
];
var fruitSection = Ti.UI.createListSection({ headerTitle: 'Fruits / Frutas', items: fruitDataSet});
sections.push(fruitSection);

var vegDataSet = [
    { info: {text: 'Carrot'}, es_info: {text: 'Zanahoria'}, pic: {image: 'carrot.png'}},
    { info: {text: 'Potato'}, es_info: {text: 'Patata'}, pic: {image: 'potato.png'}}
];
var vegSection = Ti.UI.createListSection({ headerTitle: 'Vegetables / Verduras', items: vegDataSet});
sections.push(vegSection);

var grainDataSet = [
    { info: {text: 'Corn'}, es_info: {text: 'Maiz'}, pic: {image: 'corn.png'}},
    { info: {text: 'Rice'}, es_info: {text: 'Arroz'}, pic: {image: 'rice.png'}}
];
var grainSection = Ti.UI.createListSection({ headerTitle: 'Grains / Granos', items: grainDataSet});
sections.push(grainSection);

listView.sections = sections;
win.add(listView);
win.open();

# List View with a pullView

This sample shows how the Titanium.UI.ListView.pullView property could be utilized along with the Titanium.UI.ListView.pull and Titanium.UI.ListView.pullend events to create a refresh control.

var win = Ti.UI.createWindow();
var listView = Ti.UI.createListView({height:'90%', top:0});
var sections = [];

var fruitDataSet = [
    {properties: { title: 'Apple'}},
    {properties: { title: 'Banana'}},
];
var fruitSection = Ti.UI.createListSection({ headerTitle: 'Fruits', items: fruitDataSet});
sections.push(fruitSection);

var vegDataSet = [
    {properties: { title: 'Carrots'}},
    {properties: { title: 'Potatoes'}},
];
var vegSection = Ti.UI.createListSection({ headerTitle: 'Vegetables', items: vegDataSet});

var fishDataSet = [
    {properties: { title: 'Cod'}},
    {properties: { title: 'Haddock'}},
];
var fishSection = Ti.UI.createListSection({ headerTitle: 'Fish', items: fishDataSet});

listView.sections = sections;
var refreshCount = 0;

function getFormattedDate(){
    var date = new Date();
    return date.getMonth() + '/' + date.getDate() + '/' + date.getFullYear() + ' ' + date.getHours() + ':' + date.getMinutes();
}

function resetPullHeader(){
    actInd.hide();
    imageArrow.transform=Ti.UI.createMatrix2D();
    if (refreshCount < 2) {
        imageArrow.show();
        labelStatus.text = 'Pull down to refresh...';
        labelLastUpdated.text = 'Last Updated: ' + getFormattedDate();
    } else {
        labelStatus.text = 'Nothing To Refresh';
        labelLastUpdated.text = 'Last Updated: ' + getFormattedDate();
        listView.removeEventListener('pull', pullListener);
        listView.removeEventListener('pullend', pullendListener);
        eventStatus.text = 'Removed event listeners.';
    }
    listView.setContentInsets({top:0}, {animated:true});
}

function loadTableData()
{
    if (refreshCount == 0) {
        listView.appendSection(vegSection);
    } else if (refreshCount == 1) {
        listView.appendSection(fishSection);
    }
    refreshCount ++;
    resetPullHeader();
}

function pullListener(e){
    eventStatus.text = 'EVENT pull FIRED. e.active = '+e.active;
    if (e.active == false) {
        var unrotate = Ti.UI.createMatrix2D();
        imageArrow.animate({transform:unrotate, duration:180});
        labelStatus.text = 'Pull down to refresh...';
    } else {
        var rotate = Ti.UI.createMatrix2D().rotate(180);
        imageArrow.animate({transform:rotate, duration:180});
        if (refreshCount == 0) {
            labelStatus.text = 'Release to get Vegetables...';
        } else {
            labelStatus.text = 'Release to get Fish...';
        }
    }
}

function pullendListener(e){
    eventStatus.text = 'EVENT pullend FIRED.';

    if (refreshCount == 0) {
        labelStatus.text = 'Loading Vegetables...';
    } else {
        labelStatus.text = 'Loading Fish...';
    }
    imageArrow.hide();
    actInd.show();
    listView.setContentInsets({top:80}, {animated:true});
    setTimeout(function(){
        loadTableData();
    }, 2000);
}

var tableHeader = Ti.UI.createView({
    backgroundColor:'#e2e7ed',
    width:320, height:80
});

var border = Ti.UI.createView({
    backgroundColor:'#576c89',
    bottom:0,
    height:2
});
tableHeader.add(border);

var imageArrow = Ti.UI.createImageView({
    image:'arrow.png',
    left:20, bottom:10,
    width:23, height:60
});
tableHeader.add(imageArrow);

var labelStatus = Ti.UI.createLabel({
    color:'#576c89',
    font:{fontSize:13, fontWeight:'bold'},
    text:'Pull down to refresh...',
    textAlign:'center',
    left:55, bottom:30,
    width:200
});
tableHeader.add(labelStatus);

var labelLastUpdated = Ti.UI.createLabel({
    color:'#576c89',
    font:{fontSize:12},
    text:'Last Updated: ' + getFormattedDate(),
    textAlign:'center',
    left:55, bottom:15,
    width:200
});
tableHeader.add(labelLastUpdated);

var actInd = Ti.UI.createActivityIndicator({
    left:20, bottom:13,
    width:30, height:30
});
tableHeader.add(actInd);
listView.pullView = tableHeader;
listView.addEventListener('pull', pullListener);
listView.addEventListener('pullend',pullendListener);

var eventStatus = Ti.UI.createLabel({
    font:{fontSize:13, fontWeight:'bold'},
    text: 'Event data will show here',
    bottom:0,
    height:'10%'
})

win.add(listView);
win.add(eventStatus);
win.open();

# Alloy XML Markup

'List View with Custom Item Template' as an Alloy view. List view markup is supported in Alloy 1.2.0 and later.

app/views/index.xml:

<Alloy>
    <Window>
        <ListView id="listView" defaultItemTemplate="template">

            <!-- The Templates tag sets the ListView's templates property -->

            <Templates>

                <!-- Define your item templates within the Templates tags or use the
                      Require tag to include a view that only contains an ItemTemplate -->

                <ItemTemplate name="template">
                    <ImageView bindId="pic" id="icon" />
                    <Label bindId="info" id="title" />
                    <Label bindId="es_info" id="subtitle" />
                </ItemTemplate>

            </Templates>

            <ListSection headerTitle="Fruit / Frutas">

                <!-- You can specify any ListItem or ListDataItem properties in ListItem -->

                <!-- Specify data to bind to the item template with inline attributes
                      defined as <bindId>:<Ti.UI.Component.property> -->

                <ListItem info:text="Apple" es_info:text="Manzana" pic:image="/apple.png" />
                <ListItem info:text="Banana" es_info:text="Banana" pic:image="/banana.png" />
            </ListSection>
            <ListSection headerTitle="Vegetables / Verduras">
                <ListItem info:text="Carrot" es_info:text="Zanahoria" pic:image="/carrot.png" />
                <ListItem info:text="Potato" es_info:text="Patata" pic:image="/potato.png" />
            </ListSection>
            <ListSection headerTitle="Grains / Granos">
                <ListItem info:text="Corn" es_info:text="Maiz" pic:image="/corn.png" />
                <ListItem info:text="Rice" es_info:text="Arroz" pic:image="/rice.png" />
            </ListSection>
        </ListView>
    </Window>
</Alloy>

app/styles/index.tss:

"#icon" : {
    width: '50dp', height: '50dp', left: 0
},
"#title" : {
    color: 'black',
    font: { fontFamily:'Arial', fontSize: '20dp', fontWeight:'bold' },
    left: '60dp', top: 0
},
"#subtitle" : {
    color: 'gray',
    font: { fontFamily:'Arial', fontSize: '14dp' },
    left: '60dp', top: '25dp'
}

# Alloy example of ListView properties

Supported in Alloy 1.3.0 and later.

In Alloy, ListView's searchView, headerView, footerView, and pullView properties may be declared as XML elements inline with the ListView element. The example below demonstrates how to use searchView, headerView and footerView.

<Alloy>
    <Window fullscreen="true">
        <ListView>
            <!-- Sets ListView's searchView property.
                  For Android, you can also do <SearchView platform="android" />
                  to use a Ti.UI.Android.SearchView instead of a search bar. -->
            <SearchBar barColor="#000" />

            <!-- Sets ListView's headerView property -->
            <HeaderView>
                <View backgroundColor="#DDD" height="Ti.UI.SIZE">
                    <Label>Header View</Label>
                </View>>
            </HeaderView>

            <ListSection>
                <ListItem title="Papaya" searchableText="Papaya"/>
                <ListItem title="Peach" searchableText="Peach"/>
                <ListItem title="Pear" searchableText="Pear"/>
                <ListItem title="Persimmon" searchableText="Persimmon"/>
                <ListItem title="Pineapple" searchableText="Pineapple"/>
                <ListItem title="Pluot" searchableText="Pluto"/>
                <ListItem title="Pomegranate" searchableText="Pomegranate"/>
            </ListSection>

            <!-- Sets ListView's footerView property -->
            <FooterView>
                <View backgroundColor="#DDD" height="Ti.UI.SIZE">
                    <Label>Footer View</Label>
                </View>
            </FooterView>
        </ListView>
    </Window>
</Alloy>

# Alloy example of <PullView> element

The example below demonstrates how to use a <PullView> Alloy element.

<!-- views/index.xml -->
<Alloy>
    <Window class="container" >
        <ListView id="list">
            <ListSection>
                <ListItem title="Number 1"></ListItem>
                <ListItem title="Number 2"></ListItem>
            </ListSection>
            <PullView>
                <View backgroundColor="red" height="50">
                    <Label>Release to reload</Label>
                </View>
            </PullView>
        </ListView>
    </Window>
</Alloy>

# Properties

# accessibilityHidden

Availability
3.1.0
3.1.0
9.2.0
accessibilityHidden :Boolean

Whether the view should be "hidden" from (i.e., ignored by) the accessibility service.

On iOS this is a direct analog of the accessibilityElementsHidden property defined in the UIAccessibility Protocol.

On Android, setting accessibilityHidden calls the native View.setImportantForAccessibility method. The native method is only available in Android 4.1 (API level 16/Jelly Bean) and later; if this property is specified on earlier versions of Android, it is ignored.

Default: false


# accessibilityHint

Availability
3.1.0
3.1.0
9.2.0
accessibilityHint :String

Briefly describes what performing an action (such as a click) on the view will do.

On iOS this is a direct analog of the accessibilityHint property defined in the UIAccessibility Protocol. On Android, it is concatenated together with accessibilityLabel and accessibilityValue in the order: accessibilityLabel, accessibilityValue, accessibilityHint. The concatenated value is then passed as the argument to the native View.setContentDescription method.

Default: null


# accessibilityLabel

Availability
3.1.0
3.1.0
9.2.0
accessibilityLabel :String

A succint label identifying the view for the device's accessibility service.

On iOS this is a direct analog of the accessibilityLabel property defined in the UIAccessibility Protocol. On Android, it is concatenated together with accessibilityValue and accessibilityHint in the order: accessibilityLabel, accessibilityValue, accessibilityHint. The concatenated value is then passed as the argument to the native View.setContentDescription method. Defaults to Title or label of the control.


# accessibilityValue

Availability
3.1.0
3.1.0
9.2.0
accessibilityValue :String

A string describing the value (if any) of the view for the device's accessibility service.

On iOS this is a direct analog of the accessibilityValue property defined in the UIAccessibility Protocol. On Android, it is concatenated together with accessibilityLabel and accessibilityHint in the order: accessibilityLabel, accessibilityValue, accessibilityHint. The concatenated value is then passed as the argument to the native View.setContentDescription method. Defaults to State or value of the control.


# allowsMultipleSelectionDuringEditing

Availability
10.1.0
7.0.0
9.2.0
allowsMultipleSelectionDuringEditing :Boolean

Determines whether multiple items of this list view can be selected at the same time while editing the table.

Default: false


# allowsMultipleSelectionInteraction

Availability
10.1.0
8.2.0
9.2.0
allowsMultipleSelectionInteraction :Boolean

Allows a two-finger pan gesture to automatically transition the table view into editing mode and start selecting rows.

Setting this property to true allows the user to start selecting multiple contiguous rows via a two-finger pan gesture. If the table view is already in editing mode, the user can also select multiple rows via a one-finger pan gesture along the edge of the table that contains editing controls (checkboxes). In order to support this behavior, you must also set allowsMultipleSelectionDuringEditing to true. Once user interaction stops the itemsselected event is fired.

Default: false


# allowsSelection

Availability
3.1.0
9.2.0
allowsSelection :Boolean

Determines whether this item can be selected.

Set to false to prevent the item from being selected.

On iOS, even if this property is set to false, you can interact with the detail disclosure accessory (accessoryType set to LIST_ACCESSORY_TYPE_DETAIL) and any child templates that are controls, such as a button, slider, etc.

Default: true


# allowsSelectionDuringEditing

Availability
10.1.0
5.4.0
9.2.0
allowsSelectionDuringEditing :Boolean

Determines whether this list view items can be selected while editing the table.

Default: false


# anchorPoint

Availability
7.5.0
3.1.0
9.2.0
anchorPoint :Point

Coordinate of the view about which to pivot an animation.

Used on iOS only. For Android, use anchorPoint.

Anchor point is specified as a fraction of the view's size. For example, {0, 0} is at the view's top-left corner, {0.5, 0.5} at its center and {1, 1} at its bottom-right corner.

See the "Using an anchorPoint" example in Titanium.UI.Animation for a demonstration. The default is center of this view.


# animatedCenter READONLY

Availability
3.1.0
9.2.0
animatedCenter :Point

Current position of the view during an animation.


# apiName READONLY

Availability
3.2.0
3.2.0
9.2.0
apiName :String

The name of the API that this proxy corresponds to.

The value of this property is the fully qualified name of the API. For example, Titanium.UI.Button returns Ti.UI.Button.


# backgroundColor

Availability
3.1.0
3.1.0
9.2.0
backgroundColor :String | Titanium.UI.Color

Background color of the view, as a color name or hex triplet.

For information about color values, see the "Colors" section of Titanium.UI. Defaults to Transparent.


# backgroundDisabledColor

Availability
3.1.0
backgroundDisabledColor :String

Disabled background color of the view, as a color name or hex triplet.

For information about color values, see the "Colors" section of Titanium.UI. Defaults to the normal background color of this view.


# backgroundDisabledImage

Availability
3.1.0
backgroundDisabledImage :String

Disabled background image for the view, specified as a local file path or URL.

If backgroundDisabledImage is undefined, and the normal background imagebackgroundImage is set, the normal image is used when this view is disabled.


# backgroundFocusedColor

Availability
3.1.0
backgroundFocusedColor :String

Focused background color of the view, as a color name or hex triplet.

For information about color values, see the "Colors" section of Titanium.UI.

For normal views, the focused color is only used if focusable is true. Defaults to the normal background color of this view.


# backgroundFocusedImage

Availability
3.1.0
backgroundFocusedImage :String

Focused background image for the view, specified as a local file path or URL.

For normal views, the focused background is only used if focusable is true. If backgroundFocusedImage is undefined, and the normal background image backgroundImage is set, the normal image is used when this view is focused.


# backgroundGradient

Availability
3.1.0
3.1.0
9.2.0
backgroundGradient :Gradient

A background gradient for the view.

A gradient can be defined as either linear or radial. A linear gradient varies continuously along a line between the startPoint and endPoint.

A radial gradient is interpolated between two circles, defined by startPoint and startRadius and endPoint and endRadius respectively.

The start points, end points and radius values can be defined in device units, in the view's coordinates, or as percentages of the view's size. Thus, if a view is 60 x 60, the center point of the view can be specified as:

{ x: 30, y: 30 }

Or:

{ x: '50%', y: '50%' }

When specifying multiple colors, you can specify an offset value for each color, defining how far into the gradient it takes effect. For example, the following color array specifies a gradient that goes from red to blue back to red:

colors: [ { color: 'red', offset: 0.0}, { color: 'blue', offset: 0.25 }, { color: 'red', offset: 1.0 } ]

Android's linear gradients ignores backfillStart and backfillEnd, treating them as if they are true. Android's radial gradients ignore the endPoint property. Defaults to no gradient.


# backgroundImage

Availability
3.1.0
3.1.0
9.2.0
backgroundImage :String

Background image for the view, specified as a local file path or URL.

Default behavior when backgroundImage is unspecified depends on the type of view and the platform. For generic views, no image is used. For most controls (buttons, textfields, and so on), platform-specific default images are used.


# backgroundLeftCap

Availability
3.1.0
9.2.0
backgroundLeftCap :Number

Size of the left end cap.

See the section on backgroundLeftCap and backgroundTopCap behavior on iOS in Titanium.UI.View.

Default: 0


# backgroundRepeat

Availability
3.1.0
3.1.0
9.2.0
backgroundRepeat :Boolean

Determines whether to tile a background across a view.

Setting this to true makes the set backgroundImage repeat across the view as a series of tiles. The tiling begins in the upper-left corner, where the upper-left corner of the background image is rendered. The image is then tiled to fill the available space of the view.

Note that setting this to true may incur performance penalties for large views or background images, as the tiling must be redone whenever a view is resized.

On iOS, the following views do not currently support tiled backgrounds:

Default: false


# backgroundTopCap

Availability
3.1.0
9.2.0
backgroundTopCap :Number

Size of the top end cap.

See the section on backgroundLeftCap and backgroundTopCap behavior on iOS in Titanium.UI.View.

Default: 0


# borderColor

Availability
3.1.0
3.1.0
9.2.0
borderColor :String | Titanium.UI.Color

Border color of the view, as a color name or hex triplet.

For information about color values, see the "Colors" section of Titanium.UI.

Defaults to the normal background color of this view (Android), black (iOS).


# borderRadius

Availability
3.1.0
3.1.0
9.2.0
borderRadius :Number | String | Array<Number> | Array<String>

Radius for the rounded corners of the view's border.

Each corner is rounded using an arc of a circle. Values for each corner can be specified. For example, '20px 20px' will set both left and right corners to 20px. Specifying '20px 20px 20px 20px' will set top-left, top-right, bottom-right and bottom-left corners in that order.

If you have issues with dark artifacts on Android you can try to disable Hardware acceleration by setting a backgroundColor with a small amount of transparency: backgroundColor:"rgba(255,255,255,254)".

Default: 0


# borderWidth

Availability
3.1.0
3.1.0
9.2.0
borderWidth :Number

Border width of the view.

If borderColor is set without borderWidth, this value will be changed to 1 of the unit declared as 'ti.ui.defaultunit' in tiapp.xml descriptor.

Default: 0


# bottom

Availability
3.1.0
3.1.0
9.2.0
bottom :Number | String

View's bottom position, in platform-specific units.

This position is relative to the view's parent. Exact interpretation depends on the parent view's layout property. Can be either a float value or a dimension string (for example, '50%' or '10px').

This is an input property for specifying where the view should be positioned, and does not represent the view's calculated position.

Defaults to undefined.


# bubbleParent

Availability
3.1.0
3.1.0
9.2.0
bubbleParent :Boolean

Indicates if the proxy will bubble an event to its parent.

Some proxies (most commonly views) have a relationship to other proxies, often established by the add() method. For example, for a button added to a window, a click event on the button would bubble up to the window. Other common parents are table sections to their rows, table views to their sections, and scrollable views to their views. Set this property to false to disable the bubbling to the proxy's parent.

Default: true


# canScroll

Availability
6.1.0
3.2.0
9.2.0
canScroll :Boolean

Determines if the list view can scroll in response to user actions.

Set to false to disable scrolling.

Default: true


# caseInsensitiveSearch

Availability
3.2.0
3.2.0
9.2.0
caseInsensitiveSearch :Boolean

Determines if the search performed is case insensitive.

Used in conjunction with searchView and searchText properties of List View and searchableText property of List Item.

Default: true


# center

Availability
3.1.0
3.1.0
9.2.0
center :Point

View's center position, in the parent view's coordinates.

This is an input property for specifying where the view should be positioned, and does not represent the view's calculated position.

Defaults to undefined.


# clipMode

Availability
3.3.0
9.2.0
clipMode :Number

View's clipping behavior.

Setting this to CLIP_MODE_ENABLED enforces all child views to be clipped to this views bounds. Setting this to CLIP_MODE_DISABLED allows child views to be drawn outside the bounds of this view. When set to CLIP_MODE_DEFAULT or when this property is not set, clipping behavior is inferred. See section on iOS Clipping Behavior in Titanium.UI.View.

Defaults to undefined. Behaves as if set to CLIP_MODE_DEFAULT.


# continuousUpdate

Availability
11.1.0
11.1.0
11.1.0
continuousUpdate :Boolean

Determines if the scrolling event should fire every time there is a new visible item.

When setting continuousUpdate to true the scrolling event will fire every time a new item is scrolled in.

Default: false


# defaultItemTemplate

Availability
3.1.0
3.1.0
9.2.0
defaultItemTemplate :String | Number

Sets the default template for list data items that do not specify the template property.

Can be set to any of the built-in templates or those defined in the templates property.

Can be changed dynamically.

Default: Titanium.UI.LIST_ITEM_TEMPLATE_DEFAULT


# dimBackgroundForSearch CREATION ONLY

Availability
6.2.0
9.2.0
dimBackgroundForSearch :Boolean

A Boolean indicating whether the underlying content is dimmed during a search.

If you do not want to show the dimmed background when clicking on the search bar, set this property false during creation.

Default: true


# disableBounce

Availability
5.4.0
9.2.0
disableBounce :Boolean

Determines whether the scroll-bounce of the list view should be disabled.

Set to true to disable the vertical bounce.

Default: false


# editing

Availability
9.3.0
3.2.0
9.2.0
editing :Boolean

Determines if the list view is currently in editing mode.

For more information see the "Editing Support" section of Titanium.UI.ListView.

Default: false


# elevation

Availability
5.0.0
elevation :Number

Base elevation of the view relative to its parent in pixels.

The elevation of a view determines the appearance of its shadow. Higher elevations produce larger and softer shadows.

Note: The elevation property only works on Titanium.UI.View objects. Many Android components have a default elevation that cannot be modified. For more information, see Google design guidelines: Elevation and shadows.


# fastScroll

Availability
7.5.0
fastScroll :Boolean

Sets the fastScroll mode on Android ListViews.

Set to true to enable fastScroll mode. When fast scrolling is enabled, the user can quickly scroll through lists by dragging the fast scroll thumb.

Default: false


# filterTouchesWhenObscured

Availability
9.3.0
filterTouchesWhenObscured :Boolean

Discards touch related events if another app's system overlay covers the view.

This is a security feature to protect an app from "tapjacking", where a malicious app can use a system overlay to intercept touch events in your app or to trick the end-user to tap on UI in your app intended for the overlay.

Setting this property to true causes touch related events (including "click") to not be fired if a system overlay overlaps the view.

Default: false


# fixedSize CREATION ONLY

Availability
11.0.0
fixedSize :Boolean

Sets fixedSize mode on Android ListViews.

Set it to true if all ListItems have the same size to gain some performance.

Default: false


# focusable

Availability
3.1.0
focusable :Boolean

Whether view should be focusable while navigating with the trackball.

Default: false


# footerDividersEnabled CREATION ONLY

Availability
3.3.0
footerDividersEnabled :Boolean

When set to false, the ListView will not draw the divider before the footer view.

Default: undefined but behaves as false


# footerTitle

Availability
3.1.0
3.1.0
9.2.0
footerTitle :String

List view footer title.


# footerView

Availability
3.2.0
3.2.0
9.2.0
footerView :Titanium.UI.View

List view footer as a view that will be rendered instead of a label.

In Alloy you can specify this property with a <FooterView> child element of a <ListView> element (see Examples). On Android, this is a creation only property.


# forceUpdates

Availability
12.3.0
12.3.0
12.3.0
forceUpdates :Boolean

Optimize the continuousUpdate scrolling event.

If continuousUpdate is enabled and you set forceUpdates to true it will fire the scrolling](Titanium.UI.ListView.scrolling) all the time. Otherwise it will only update when a new item is scrolled in (default).

Default: false


# headerDividersEnabled CREATION ONLY

Availability
3.3.0
headerDividersEnabled :Boolean

When set to false, the ListView will not draw the divider after the header view.

Default: undefined but behaves as false


# headerTitle

Availability
3.1.0
3.1.0
9.2.0
headerTitle :String

List view header title.


# headerView

Availability
3.2.0
3.2.0
9.2.0
headerView :Titanium.UI.View

List view header as a view that will be rendered instead of a label.

On Android, this is a creation only property. In Alloy you can specify this property with a <HeaderView> child element of a <ListView> element (see Examples).


# height

Availability
3.1.0
3.1.0
9.2.0
height :Number | String

View height, in platform-specific units.

Defaults to: If undefined, defaults to either FILL or SIZE depending on the view. See "View Types and Default Layout Behavior" in Transitioning to the New UI Layout System.

Can be either a float value or a dimension string (for example, '50%' or '40dp'). Can also be one of the following special values:

  • SIZE. The view should size itself to fit its contents.
  • FILL. The view should size itself to fill its parent.
  • 'auto'. Represents the default sizing behavior for a given type of view. The use of 'auto' is deprecated, and should be replaced with the SIZE or FILL constants if it is necessary to set the view's behavior explicitly.

This is an input property for specifying the view's height dimension. To determine the view's size once rendered, use the rect or size properties.

This API can be assigned the following constants:

# hiddenBehavior

Availability
6.1.0
hiddenBehavior :Number

Sets the behavior when hiding an object to release or keep the free space

If setting hiddenBehavior to HIDDEN_BEHAVIOR_GONE it will automatically release the space the view occupied. For example: in a vertical layout the views below the object will move up when you hide an object with hiddenBehavior:Titanium.UI.HIDDEN_BEHAVIOR_GONE.

Defaults to Titanium.UI.HIDDEN_BEHAVIOR_INVISIBLE.

This API can be assigned the following constants:

# horizontalMotionEffect

Availability
7.3.0
9.2.0
horizontalMotionEffect :MinMaxOptions

Adds a horizontal parallax effect to the view

Note that the parallax effect only happens by tilting the device so results can not be seen on Simulator. To clear all motion effects, use the <Titanium.UI.clearMotionEffects> method.


# horizontalWrap

Availability
3.1.0
3.1.0
9.2.0
horizontalWrap :Boolean

Determines whether the layout has wrapping behavior.

For more information, see the discussion of horizontal layout mode in the description of the layout property.

Default: true


# id

Availability
3.1.0
3.1.0
9.2.0
id :String

View's identifier.

The id property of the Ti.UI.View represents the view's identifier. The identifier string does not have to be unique. You can use this property with getViewById method.


# keepScreenOn

Availability
3.1.0
keepScreenOn :Boolean

Determines whether to keep the device screen on.

When true the screen will not power down. Note: enabling this feature will use more power, thereby adversely affecting run time when on battery. For iOS look at idleTimerDisabled.

Default: false


# keepSectionsInSearch

Availability
3.2.0
9.2.0
keepSectionsInSearch :Boolean

Determines if the section information is displayed in the search results when using the searchText property.

Used in conjunction with searchText property of List View and searchableText property of List Item.

Default: false


# keyboardDismissMode

Availability
6.0.0
9.2.0
keyboardDismissMode :Number

The manner in which the keyboard is dismissed when a drag begins in the list view.

Default: Undefined (behaves like <Titanium.UI.iOS.KEYBOARD_DISMISS_MODE_NONE>)


# layout

Availability
3.1.0
3.1.0
9.2.0
layout :String

Specifies how the view positions its children. One of: 'composite', 'vertical', or 'horizontal'.

There are three layout options:

  • composite (or absolute). Default layout. A child view is positioned based on its positioning properties or "pins" (top, bottom, left, right and center). If no positioning properties are specified, the child is centered.

    The child is always sized based on its width and height properties, if these are specified. If the child's height or width is not specified explicitly, it may be calculated implicitly from the positioning properties. For example, if both left and center.x are specified, they can be used to calculate the width of the child control.

    Because the size and position properties can conflict, there is a specific precedence order for the layout properties. For vertical positioning, the precedence order is: height, top, center.y, bottom.

    The following table summarizes the various combinations of properties that can be used for vertical positioning, in order from highest precedence to lowest. (For example, if height, center.y and bottom are all specified, the height and center.y values take precedence.)

    Scenario Behavior
    height & top specified Child positioned top unit from parent's top, using specified height; any center.y and bottom values are ignored.
    height & center.y specified Child positioned with center at center.y, using specified height; any bottom value is ignored.
    height & bottom specified Child positioned bottom units from parent's bottom, using specified height.
    top & center.y specified Child positioned with top edge top units from parent's top and center at center.y. Height is determined implicitly; any bottom value is ignored.
    top & bottom specified Child positioned with top edge top units from parent's top and bottom edge bottom units from parent's bottom. Height is determined implicitly.
    Only top specified Child positioned top units from parent's top, and uses the default height calculation for the view type.
    center.y and bottom specified Child positioned with center at center.y and bottom edge bottom units from parent's bottom. Height is determined implicitly.
    Only center.y specified Child positioned with center at center.y, and uses the default height calculation for the view type.
    Only bottom specified Child positioned with bottom edge bottom units from parent's bottom, and uses the default height calculation for the view type.
    height, top, center.y, and bottom unspecified Child entered vertically in the parent and uses the default height calculation for the child view type.

    Horizontal positioning works like vertical positioning, except that the precedence is width, left, center.x, right.

    For complete details on composite layout rules, see Transitioning to the New UI Layout System in the Titanium Mobile Guides.

  • vertical. Children are laid out vertically from top to bottom. The first child is laid out top units from its parent's bounding box. Each subsequent child is laid out below the previous child. The space between children is equal to the upper child's bottom value plus the lower child's top value.

    Each child is positioned horizontally as in the composite layout mode.

  • horizontal. Horizontal layouts have different behavior depending on whether wrapping is enabled. Wrapping is enabled by default (the horizontalWrap property is true).

    With wrapping behavior, the children are laid out horizontally from left to right, in rows. If a child requires more horizontal space than exists in the current row, it is wrapped to a new row. The height of each row is equal to the maximum height of the children in that row.

    Wrapping behavior is available on iOS and Android. When the horizontalWrap property is set to true, the first row is placed at the top of the parent view, and successive rows are placed below the first row. Each child is positioned vertically within its row somewhat like composite layout mode. In particular:

    • If neither top or bottom is specified, the child is centered in the row.
    • If either top or bottom is specified, the child is aligned to either the top or bottom of the row, with the specified amount of padding.
    • If both top and bottom is specified for a given child, the properties are both treated as padding.

    If the horizontalWrap property is false, the behavior is more equivalent to a vertical layout. Children are laid or horizontally from left to right in a single row. The left and right properties are used as padding between the children, and the top and bottom properties are used to position the children vertically.

    Defaults to Composite layout.


# lazyLoadingEnabled

Availability
5.1.0
9.2.0
lazyLoadingEnabled :Boolean

Determines if the list view should use lazy loading to load remote images.

Lazy loading is used to load remote images only if they are in the visible view area. It is enabled by default. If you disable it, images will be loaded even if they are currently not visible. Disabling improves the loading of images, but can also cause trouble in list views having a lot of remote images, because every remote image opens a new HTTP request.

Default: true


# left

Availability
3.1.0
3.1.0
9.2.0
left :Number | String

View's left position, in platform-specific units.

This position is relative to the view's parent. Exact interpretation depends on the parent view's layout property. Can be either a float value or a dimension string (for example, '50%' or '10px').

This is an input property for specifying where the view should be positioned, and does not represent the view's calculated position.

Defaults to undefined.


# lifecycleContainer

Availability
3.6.0

The Window or TabGroup whose Activity lifecycle should be triggered on the proxy.

If this property is set to a Window or TabGroup, then the corresponding Activity lifecycle event callbacks will also be called on the proxy. Proxies that require the activity lifecycle will need this property set to the appropriate containing Window or TabGroup.


# listSeparatorInsets

Availability
5.4.0
9.2.0
listSeparatorInsets :HorizontalInsets

The insets for the list view header and footer.

Cell separators do not extend all the way to the edge of the list view. Set this to a dictionary with two keys, left specifying inset from left edge and right specifying the inset from the right edge. If the rowSeparatorInsets is not set, the listSeparatorInsets will also set the cell insets.

For example:

listView.listSeparatorInsets = {
    left: 10,
    right: 10
};

# opacity

Availability
3.1.0
3.1.0
9.2.0
opacity :Number

Opacity of this view, from 0.0 (transparent) to 1.0 (opaque). Defaults to 1.0 (opaque).


# overrideCurrentAnimation CREATION ONLY

Availability
3.3.0
overrideCurrentAnimation :Boolean

When on, animate call overrides current animation if applicable.

If this property is set to false, the animate call is ignored if the view is currently being animated.

Defaults to undefined but behaves as false


# previewContext

Availability
5.1.0

The preview context used in the 3D-Touch feature "Peek and Pop".

Preview context to present the "Peek and Pop" of a view. Use an configured instance of Titanium.UI.iOS.PreviewContext here.

Note: This property can only be used on devices running iOS9 or later and supporting 3D-Touch. It is ignored on older devices and can manually be checked using forceTouchSupported.


# pruneSectionsOnEdit

Availability
3.2.0
9.2.0
pruneSectionsOnEdit :Boolean

Determines if empty sections are retained when the user completes editing the list view.

For more information see the "Editing Support" section of Titanium.UI.ListView.

Default: false


# pullBackgroundColor

Availability
3.3.0
9.2.0
pullBackgroundColor :String | Titanium.UI.Color

Background color of the wrapper view when this view is used as either pullView or headerPullView.

Defaults to undefined. Results in a light grey background color on the wrapper view.


# pullView

Availability
3.2.0
9.2.0
pullView :Titanium.UI.View

View positioned above the first row that is only revealed when the user drags the list view contents down.

A pullView is a UI control that is often used to provide a convenient way for the user to refresh a table's data. Typically used in conjunction with setContentInsets method and pull and pullend events.

To specify the wrapper color see pullBackgroundColor.

In Alloy you can assign this property with a <PullView> child element of a <ListView> element:

<Alloy>
  <ListView>
    <ListSection>
      <ListItem title="Item a"></ListItem>
      <ListItem title="Item b"></ListItem>
      <ListItem title="Item c"></ListItem>
    </ListSection>
    <PullView>
      <View height="50" backgroundColor="black">
        <Label/>
      </View>
    </PullView>
  </ListView>
</Alloy>

See the code example on pullView to see how it may be utilized.


# rect READONLY

Availability
3.1.0
3.1.0
9.2.0

The bounding box of the view relative to its parent, in system units.

The view's bounding box is defined by its size and position.

The view's size is rect.width x rect.height. The view's top-left position relative to its parent is (rect.x , rect.y).

On Android it will also return rect.absoluteX and 'rect.absoluteY' which are relative to the main window.

The correct values will only be available when layout is complete. To determine when layout is complete, add a listener for the postlayout event.


# refreshControl

Availability
6.2.0
3.2.0
9.2.0
refreshControl :Titanium.UI.RefreshControl

View positioned above the first row that is only revealed when the user drags the list view contents down.

An alternate to the pullView property. See Titanium.UI.RefreshControl for usage and examples.


# requiresEditingToMove

Availability
11.1.0
11.1.0
11.1.0
requiresEditingToMove :Boolean

Determines if the list view should allow drag-and-drop even without going into the editing mode

For more information see the "Editing Support" section of Titanium.UI.ListView.

Default: true


# resultsBackgroundColor CREATION ONLY

Availability
6.1.0
9.2.0
resultsBackgroundColor :String | Titanium.UI.Color

The background color of the search results (iOS-only).

For information about color values, see the "Colors" section of Titanium.UI. Note: A transparent background-color is not officially supported by Apple to prevent that the list of results overlaps with the list view below it.

Default: undefined (behaves as white)


# resultsSeparatorColor CREATION ONLY

Availability
6.1.0
9.2.0
resultsSeparatorColor :String | Titanium.UI.Color

Separator line color between rows inside search results, as a color name or hex triplet (iOS-only).

To make the line invisible, set this property to transparent, or the same value as the backgroundColor property. For information about color values, see the "Colors" section of Titanium.UI.

Default: undefined (behaves as gray)


# resultsSeparatorInsets CREATION ONLY

Availability
6.1.0
9.2.0
resultsSeparatorInsets :HorizontalInsets

The insets for search results separators (applies to all cells & iOS-only).

Cell separators do not extend all the way to the edge of the list view. This property sets the default inset for all cells in the table. Set this to a dictionary with two keys, left specifying inset from left edge and right specifying the inset from the right edge.


# resultsSeparatorStyle CREATION ONLY

Availability
6.1.0
9.2.0
resultsSeparatorStyle :Number

The separator style of the search results (iOS-only).


right :Number | String

View's right position, in platform-specific units.

This position is relative to the view's parent. Exact interpretation depends on the parent view's layout property. Can be either a float value or a dimension string (for example, '50%' or '10px').

This is an input property for specifying where the view should be positioned, and does not represent the view's calculated position.

Defaults to undefined.


# rotation

Availability
5.4.0
12.3.0
rotation :Number

Clockwise 2D rotation of the view in degrees.

Translation values are applied to the static post layout value.


# rotationX

Availability
5.4.0
rotationX :Number

Clockwise rotation of the view in degrees (x-axis).

Translation values are applied to the static post layout value.


# rotationY

Availability
5.4.0
rotationY :Number

Clockwise rotation of the view in degrees (y-axis).

Translation values are applied to the static post layout value.


# rowSeparatorInsets

Availability
5.2.0
9.2.0
rowSeparatorInsets :HorizontalInsets

The insets for list view cells (applies to all cells).

Cell separators do not extend all the way to the edge of the list view. Set this to a dictionary with two keys, left specifying inset from left edge and right specifying the inset from the right edge. This property is only available upon creation of the cells.

For example:

listView.rowSeparatorInsets = {
    left: 10,
    right: 10
};

# scaleX

Availability
5.4.0
scaleX :Number

Scaling of the view in x-axis in pixels.

Translation values are applied to the static post layout value.


# scaleY

Availability
5.4.0
scaleY :Number

Scaling of the view in y-axis in pixels.

Translation values are applied to the static post layout value.


# scrollIndicatorStyle

Availability
3.1.0
9.2.0
scrollIndicatorStyle :Number

Style of the scrollbar.

Default: Titanium.UI.iOS.ScrollIndicatorStyle.DEFAULT


# searchText

Availability
3.2.0
3.2.0
9.2.0
searchText :String

The string to use as the search parameter.

Provides a generic search API for the List View. This property can not be used when the searchView property is set. Used in conjunction with caseInsensitiveSearch property of List View and searchableText property of List Item.

On iOS, when using this property the style property of the List View is honored. If the keepSectionsInSearch property is set to true then section information is preserved in the search results, otherwise the search results are displayed in a single section.


# searchView

Availability
3.2.0
3.2.0
9.2.0

Search field to use for the list view.

Provides the same functionality as the search property in Titanium.UI.TableView. Used in conjunction with caseInsensitiveSearch property of List View and searchableText property of List Item.

On Android, you can either specify Titanium.UI.SearchBar or Titanium.UI.Android.SearchView, while on iOS only Titanium.UI.SearchBar is supported.

In an Alloy application, you can use a <SearchView> or <SearchBar> element inside a <ListView> element.

<Alloy>
    <ListView>
        <!-- search, shorthand with Ti.UI.SearchBar -->
      <SearchBar class="search" platform="ios"/>
      <!-- search, shorthand with Ti.UI.Android.SearchView -->
      <SearchView ns="Ti.UI.Android" class="search" platform="android"/>
    </ListView>
</Alloy>

# sectionCount READONLY

Availability
3.1.0
3.1.0
9.2.0
sectionCount :Number

Number of sections in this list view.


# sectionHeaderTopPadding

Availability
10.1.0
10.1.0
sectionHeaderTopPadding :Number

Padding above each section header.

If not set or set to -1, it defaults to an automatic spacing determined by the system.


# sectionIndexTitles

Availability
3.2.0
9.2.0
sectionIndexTitles :Array<ListViewIndexEntry>

Array of objects (with title and index properties) to control the list view index.

If an index array is specified, an index bar is displayed on the right-hand side of the list view. Clicking on a title in the index bar scrolls the list view to the section index associated with that title.


# sections

Availability
3.1.0
3.1.0
9.2.0
sections :Array<Titanium.UI.ListSection>

Sections of this list.


# selectedItems

Availability
10.1.0
7.0.0
9.2.0
selectedItems :Array<ListItemEventType>

Returns the selected list view items.


# separatorColor

Availability
3.2.0
3.2.0
9.2.0
separatorColor :String | Titanium.UI.Color

Separator line color between items, as a color name or hex triplet.

To make the line invisible, set this property to transparent, or the same value as the backgroundColor property. For information about color values, see the "Colors" section of Titanium.UI.

Default: platform-specific default color


# separatorHeight

Availability
4.1.0
separatorHeight :String | Number

height of the ListView separator.

Height of the ListView separator, in platform-specific units. If undefined, default native height will be used. Numerical inputs are treated as pixels. For example, 3 and "3px" are equivalent. On Android API < 23 you must specify Titanium.UI.ListView.separatorStyle and separatorColor for this property to work.


# separatorInsets DEPRECATED

Availability
3.2.0
9.2.0
separatorInsets :HorizontalInsets

DEPRECATED SINCE 5.2.0

Use listSeparatorInsets instead.

The insets for list view separators (applies to all cells).

Cell separators do not extend all the way to the edge of the list view. This property sets the default inset for all cells in the table. Set this to a dictionary with two keys, left specifying inset from left edge and right specifying the inset from the right edge.


# separatorStyle

Availability
8.1.0
3.2.0
9.2.0
separatorStyle :Number

Separator style constant.


# showSearchBarInNavBar CREATION ONLY

Availability
8.1.0
9.2.0
showSearchBarInNavBar :Boolean

A Boolean indicating whether search bar will be in navigation bar.

If you want to show the search bar in navigation bar, set this property true during creation. Use the hidesSearchBarWhenScrolling property to control the visibility of the searchbar when scrolling.

Default: false


# showSelectionCheck

Availability
10.1.0
showSelectionCheck :Boolean

Determines whether the selection checkmark is displayed on selected items.

Default: true


# showVerticalScrollIndicator

Availability
3.1.0
3.1.0
9.2.0
showVerticalScrollIndicator :Boolean

Determines whether this list view displays a vertical scroll indicator.

Set to false to hide the vertical scroll indicator.

Default: true


# size READONLY

Availability
3.1.0
3.1.0
9.2.0
size :Dimension

The size of the view in system units.

Although property returns a Dimension dictionary, only the width and height properties are valid. The position properties--x and y--are always 0.

To find the position and size of the view, use the rect property instead.

The correct values will only be available when layout is complete. To determine when layout is complete, add a listener for the postlayout event.


# softKeyboardOnFocus

Availability
3.1.0
softKeyboardOnFocus :Number

Determines keyboard behavior when this view is focused. Defaults to SOFT_KEYBOARD_DEFAULT_ON_FOCUS.


# style CREATION ONLY

Availability
3.1.0
9.2.0
style :Number

Style of the list view.

Style should always be set before setting the sections on list view.

Default: Titanium.UI.iOS.ListViewStyle.PLAIN


# tableSeparatorInsets DEPRECATED

Availability
5.2.0
9.2.0
tableSeparatorInsets :HorizontalInsets

DEPRECATED SINCE 5.4.0

Use listSeparatorInsets instead.

The insets for the table view header and footer.

Cell separators do not extend all the way to the edge of the list view. Set this to a dictionary with two keys, left specifying inset from left edge and right specifying the inset from the right edge. If the rowSeparatorInsets is not set, the tableSeparatorInsets will also set the cell insets.

For example:

listView.tableSeparatorInsets = {
    left: 10,
    right: 10
};

# templates CREATION ONLY

Availability
3.1.0
3.1.0
9.2.0
templates :Dictionary

Contain key-value pairs mapping a style name (key) to an ItemTemplate (value).

This property cannot be changed once a window has been opened.


# tintColor

Availability
3.1.3
9.2.0
tintColor :String | Titanium.UI.Color

The view's tintColor

This property is a direct correspondant of the tintColor property of UIView on iOS. If no value is specified, the tintColor of the View is inherited from its superview.

Default: null


# tooltip

Availability
12.1.0
12.1.0
12.1.0
tooltip :String

The default text to display in the control's tooltip.

Assigning a value to this property causes the tool tip to be displayed for the view. Setting the property to null cancels the display of the tool tip for the view. Note: This property is only used for apps targeting macOS Catalyst.


# top

Availability
3.1.0
3.1.0
9.2.0
top :Number | String

The view's top position.

This position is relative to the view's parent. Exact interpretation depends on the parent view's layout property. Can be either a float value or a dimension string (for example, '50%' or '10px').

This is an input property for specifying where the view should be positioned, and does not represent the view's calculated position.


# touchEnabled

Availability
3.1.0
3.1.0
9.2.0
touchEnabled :Boolean

Determines whether view should receive touch events.

If false, will forward the events to peers.

Default: true


# touchFeedback

Availability
10.0.0
touchFeedback :Boolean

A material design visual construct that provides an instantaneous visual confirmation of touch point.

Touch feedback is only applied to a view's background.

Default: true


# touchFeedbackColor

Availability
6.1.0
touchFeedbackColor :String

Optional touch feedback ripple color. This has no effect unless touchFeedback is true.

Defaults to provided theme color.


# transform

Availability
3.1.0
3.1.0
9.2.0

Transformation matrix to apply to the view.

Android only supports Matrix2D transforms.

Default: Identity matrix


# transitionName

Availability
5.0.2
transitionName :String

A name to identify this view in activity transition.

Name should be unique in the View hierarchy.


# translationX

Availability
5.0.0
translationX :Number

Horizontal location of the view relative to its left position in pixels.

Translation values are applied to the static post layout value.


# translationY

Availability
5.0.0
translationY :Number

Vertical location of the view relative to its top position in pixels.

Translation values are applied to the static post layout value.


# translationZ

Availability
5.0.0
translationZ :Number

Depth of the view relative to its elevation in pixels.

Translation values are applied to the static post layout value.


# verticalMotionEffect

Availability
7.3.0
9.2.0
verticalMotionEffect :MinMaxOptions

Adds a vertical parallax effect to the view

Note that the parallax effect only happens by tilting the device so results can not be seen on Simulator. To clear all motion effects, use the <Titanium.UI.clearMotionEffects> method.


# viewShadowColor

Availability
11.1.0
3.3.0
9.2.0
viewShadowColor :String | Titanium.UI.Color

Determines the color of the shadow.

iOS Defaults to undefined. Behaves as if transparent. Android default is black. On Android you can set <item name="android:ambientShadowAlpha">0.5</item> and <item name="android:spotShadowAlpha">0.5</item> in your theme to change the opacity.


# viewShadowOffset

Availability
3.3.0
9.2.0
viewShadowOffset :Point

Determines the offset for the shadow of the view.

Defaults to undefined. Behaves as if set to (0,-3)


# viewShadowRadius

Availability
3.3.0
9.2.0
viewShadowRadius :Number | String

Determines the blur radius used to create the shadow.

Defaults to undefined. Behaves as if set to 3. Accepts density units as of 10.0.1.


# visible

Availability
3.1.0
3.1.0
9.2.0
visible :Boolean

Determines whether the view is visible.

Default: true


# width

Availability
3.1.0
3.1.0
9.2.0
width :Number | String

View's width, in platform-specific units.

Defaults to: If undefined, defaults to either FILL or SIZE depending on the view. See "View Types and Default Layout Behavior" in Transitioning to the New UI Layout System.

Can be either a float value or a dimension string (for example, '50%' or '40dp'). Can also be one of the following special values:

  • SIZE. The view should size itself to fit its contents.
  • FILL. The view should size itself to fill its parent.
  • 'auto'. Represents the default sizing behavior for a given type of view. The use of 'auto' is deprecated, and should be replaced with the SIZE or FILL constants if it is necessary to set the view's behavior explicitly.

This is an input property for specifying the view's width dimension. To determine the view's size once rendered, use the rect or size properties.

This API can be assigned the following constants:

# willScrollOnStatusTap

Availability
3.1.0
9.2.0
willScrollOnStatusTap :Boolean

Controls the scroll-to-top gesture.

If the user taps on the status bar, the view scrolls to the top. This gesture works when you have a single visible list view. If there are multiple list views, table views, web views, text areas, and/or scroll views visible, you need to disable (set to false) this property on the views you DO NOT want to enable this behavior for. The remaining view responds to the scroll-to-top gesture.

Default: true


# zIndex

Availability
3.1.0
3.1.0
9.2.0
zIndex :Number

Z-index stack order position, relative to other sibling views.

A view does not have a default z-index value, meaning that it is undefined by default. When this property is explicitly set, regardless of its value, it causes the view to be positioned in front of any sibling that has an undefined z-index.

Defaults to undefined.

# Methods

# addEventListener

Availability
3.1.0
3.1.0
9.2.0
addEventListener(name, callback) → void

Adds the specified callback as an event listener for the named event.

Parameters

Name Type Description
name String

Name of the event.

callback Callback<Titanium.Event>

Callback function to invoke when the event is fired.

Returns

Type
void

# addMarker

Availability
4.1.0
4.1.0
9.2.0
addMarker(markerProps) → void

Adds a reference item in the list view.

See marker event for details.

Parameters

Name Type Description
markerProps ListViewMarkerProps

Dictionary to describe the reference item.

Returns

Type
void

# animate

Availability
3.1.0
3.1.0
9.2.0
animate(animation[, callback]) → void

Animates this view.

The Titanium.UI.Animation object or dictionary passed to this method defines the end state for the animation, the duration of the animation, and other properties.

Note that on SDKs older than 9.1.0 - if you use animate to move a view, the view's actual position is changed, but its layout properties, such as top, left, center and so on are not changed--these reflect the original values set by the user, not the actual position of the view.

As of SDK 9.1.0, the final values of the animation will be set on the view just before the complete event and/or the callback is fired.

The rect property can be used to determine the actual size and position of the view.

Parameters

Name Type Description
animation Titanium.UI.Animation | Dictionary<Titanium.UI.Animation>

Either a dictionary of animation properties or an Titanium.UI.Animation object.

callback Callback<Object>

Function to be invoked upon completion of the animation.

Returns

Type
void

# appendSection

Availability
3.1.0
3.1.0
9.2.0
appendSection(section[, animation]) → void

Appends a single section or an array of sections to the end of the list.

On iOS, the section(s) can be inserted with an animation by specifying the animation parameter.

Parameters

Name Type Description
section Titanium.UI.ListSection | Array<Titanium.UI.ListSection>

Section or sections to add to the list.

animation ListViewAnimationProperties

Animation properties. (iOS only.)

Returns

Type
void

# applyProperties

Availability
3.1.0
3.1.0
9.2.0
applyProperties(props) → void

Applies the properties to the proxy.

Properties are supplied as a dictionary. Each key-value pair in the object is applied to the proxy such that myproxy[key] = value.

Parameters

Name Type Description
props Dictionary

A dictionary of properties to apply.

Returns

Type
void

# clearMotionEffects

Availability
8.2.0
9.2.0
clearMotionEffects() → void

Removes all previously added motion effects.

Use this method together with <Titanium.UI.horizontalMotionEffect> and <Titanium.UI.verticalMotionEffect>.

Returns

Type
void

# convertPointToView

Availability
3.1.0
3.1.0
9.2.0
convertPointToView(point, destinationView) → Point

Translates a point from this view's coordinate system to another view's coordinate system.

Returns null if either view is not in the view hierarchy.

Keep in mind that views may be removed from the view hierarchy if their window is blurred or if the view is offscreen (such as in some situations with Titanium.UI.ScrollableView).

If this view is a Titanium.UI.ScrollView, the view's x and y offsets are subtracted from the return value.

Parameters

Name Type Description
point Point

A point in this view's coordinate system.

If this argument is missing an x or y property, or the properties can not be converted into numbers, an exception will be raised.

destinationView Titanium.UI.View

View that specifies the destination coordinate system to convert to. If this argument is not a view, an exception will be raised.

Returns

Type
Point

# deleteSectionAt

Availability
3.1.0
3.1.0
9.2.0
deleteSectionAt(sectionIndex[, animation]) → void

Deletes an existing section.

On iOS, the section can be deleted with an animation by specifying the animation parameter.

Parameters

Name Type Description
sectionIndex Number

Index of the section to delete.

animation ListViewAnimationProperties

Animation properties. (iOS only.)

Returns

Type
void

# deselectItem

Availability
3.2.0
9.2.0
deselectItem(sectionIndex, itemIndex) → void

Deselects a specific item.

Parameters

Name Type Description
sectionIndex Number

Section index.

itemIndex Number

Item index.

Returns

Type
void

# fireEvent

Availability
3.1.0
3.1.0
9.2.0
fireEvent(name[, event]) → void

Fires a synthesized event to any registered listeners.

Parameters

Name Type Description
name String

Name of the event.

event Dictionary

A dictionary of keys and values to add to the Titanium.Event object sent to the listeners.

Returns

Type
void

# getViewById

Availability
6.1.0
6.1.0
9.2.0
getViewById(id) → Titanium.UI.View

Returns the matching view of a given view ID.

Parameters

Name Type Description
id String

The ID of the view that should be returned. Use the id property in your views to enable it for indexing in this method.

Returns


# hide

Availability
3.1.0
3.1.0
9.2.0
hide([options]) → void

Hides this view.

Parameters

Name Type Description
options AnimatedOptions

Animation options for Android only. Since SDK 5.1.0 and used only on Android 5.0+

Determines whether to enable a circular reveal animation. Note that the default here is equivalent to passing in { animated: false }

Returns

Type
void

# insertAt

Availability
3.3.0
3.3.0
9.2.0
insertAt(params) → void

Inserts a view at the specified position in the children array.

Useful if the layout property is set to horizontal or vertical.

Parameters

Name Type Description
params ViewPositionOptions

Pass an object that specifies the view to insert and optionally at which position (defaults to end)

Returns

Type
void

# insertSectionAt

Availability
3.1.0
3.1.0
9.2.0
insertSectionAt(sectionIndex, section[, animation]) → void

Inserts a section or an array of sections at a specific index.

Existing sections at that index and after are pushed down.

On iOS, the section(s) may be inserted with an animation by setting the animation parameter.

Parameters

Name Type Description
sectionIndex Number

Index of the section to insert before.

section Titanium.UI.ListSection | Array<Titanium.UI.ListSection>

Section or sections to insert.

animation ListViewAnimationProperties

Animation properties. (iOS only.)

Returns

Type
void

# removeEventListener

Availability
3.1.0
3.1.0
9.2.0
removeEventListener(name, callback) → void

Removes the specified callback as an event listener for the named event.

Multiple listeners can be registered for the same event, so the callback parameter is used to determine which listener to remove.

When adding a listener, you must save a reference to the callback function in order to remove the listener later:

var listener = function() { Ti.API.info("Event listener called."); }
window.addEventListener('click', listener);

To remove the listener, pass in a reference to the callback function:

window.removeEventListener('click', listener);

Parameters

Name Type Description
name String

Name of the event.

callback Callback<Titanium.Event>

Callback function to remove. Must be the same function passed to addEventListener.

Returns

Type
void

# replaceSectionAt

Availability
3.1.0
3.1.0
9.2.0
replaceSectionAt(sectionIndex, section[, animation]) → void

Replaces an existing section.

On iOS, the section may be replaced with an animation by setting the animation parameter.

Parameters

Name Type Description
sectionIndex Number

Index of the section to update.

section Titanium.UI.ListSection

section data to update.

animation ListViewAnimationProperties

Animation properties. (iOS only.)

Returns

Type
void

# scrollToItem

Availability
3.1.0
3.1.0
9.2.0
scrollToItem(sectionIndex, itemIndex[, animation]) → void

Scrolls to a specific item.

On Android 4.x, the list does not stop at the correct position. This is a known bug in Android. (Android Issue #37278)

Android added support for the animation parameter in Release 3.3.0 on the Titanium SDK.

Parameters

Name Type Description
sectionIndex Number

Section index.

itemIndex Number

Item index.

animation ListViewAnimationProperties

Animation properties. (iOS, Android and Windows)

Returns

Type
void

# selectItem

Availability
3.1.0
9.2.0
selectItem(sectionIndex, itemIndex) → void

Selects an item in the list using the specified item and section indices.

Parameters

Name Type Description
sectionIndex Number

Index of the section the item is in.

itemIndex Number

Index of the item to select.

Returns

Type
void

# setContentInsets

Availability
3.2.0
9.2.0
setContentInsets(edgeInsets[, options]) → void

Sets this list view's content insets.

A list view is essentially a scroll view that contains a set of static row views that represents the content. Thus, the setContentInsets method facilitates a margin, or inset, distance between the content and the container scroll view.

Typically used with the pullView property.

Parameters

Name Type Description
edgeInsets Padding

Sets the distance that the content view is inset from the enclosing scroll view of the list view. For example

setContentInset({top:50,bottom:10,right:10,left:10}, {animated:true})
options AnimatedWithDurationOptions

Determines whether, and how, the content inset change should be animated. Note that the default here is equivalent to passing in { animated: false, duration: 300 }

Returns

Type
void

# setContentOffset

Availability
10.1.0
3.4.0
9.2.0
setContentOffset(contentOffset[, options]) → void

Sets the value of the content offset of the list view without animation by default.

Parameters

Name Type Description
contentOffset Point

Dictionary with the properties x, y. The x and y coordinates reposition the top-left point of the scrollable region of the list view.

options AnimatedOptions

Pass in { animated: true } to animate the transition. Note that the default here is equivalent to passing in { animated: false }

Returns

Type
void

# setMarker

Availability
3.2.0
3.2.0
9.2.0
setMarker(markerProps) → void

Sets a reference item in the list view.

This method replaces previous reference items with the current one. See marker event for details.

Parameters

Name Type Description
markerProps ListViewMarkerProps

Dictionary to describe the reference item.

Returns

Type
void

# show

Availability
3.1.0
3.1.0
9.2.0
show([options]) → void

Makes this view visible.

Parameters

Name Type Description
options AnimatedOptions

Animation options for Android only. Since SDK 5.1.0 and only used on Android 5.0+

Determines whether to enable a circular reveal animation. Note that the default here is equivalent to passing in { animated: false }

Returns

Type
void

# stopAnimation

Availability
12.1.0
stopAnimation() → void

Stops a running animation.

Stops a running view Titanium.UI.Animation.

Returns

Type
void

# toImage

Availability
3.1.0
3.1.0
9.2.0
toImage([callback[, honorScaleFactor]]) → Titanium.Blob

Returns an image of the rendered view, as a Blob.

The honorScaleFactor argument is only supported on iOS.

Parameters

Name Type Description
callback Callback<Titanium.Blob>

Function to be invoked upon completion. If non-null, this method will be performed asynchronously. If null, it will be performed immediately.

honorScaleFactor Boolean

Determines whether the image is scaled based on scale factor of main screen. (iOS only)

When set to true, image is scale factor is honored. When set to false, the image in the blob has the same dimensions for retina and non-retina devices.

Returns

# Events

# indexclick

Availability
3.4.0
9.2.0

Fired when the index bar is clicked by the user.

If the list view contains the sectionIndexTitles array of indices the index bar will appear on the side. This event will fire when this bar is clicked

Properties

Name Type Description
title String

The title of the index clicked.

index Number

The index number clicked.

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.


# itemclick

Availability
3.1.0
3.1.0
9.2.0

Fired when a list row is clicked by the user.

Do not rely on the source property to determine which item fired the event. Use the sectionIndex and itemIndex, or the itemId to determine the list item that generated the event, and use the bindId to check which child control fired the event.

Properties

Name Type Description
section Titanium.UI.ListSection

List section if the item is contained in a list section.

sectionIndex Number

Section index.

itemIndex Number

Item index.

itemId String

The item ID bound to the list item that generated the event.

bindId String

The bind ID of the control that generated this event, if one exists.

accessoryClicked Boolean

Returns true if the detail button is clicked else returns false.

Only returns true if the accessoryType property is set to LIST_ACCESSORY_TYPE_DETAIL. All other accessories return false if clicked.

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.


# itemsselected

Availability
10.1.0
8.2.0
9.2.0

Fired when user stops two-pan gesture interaction for selecting multiple items. It is used with allowsMultipleSelectionInteraction.

Properties

Name Type Description
selectedItems Array<SelectedItem>

List of items selected by user.

startingItem SelectedItem

First item selected when user started interaction.

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.


# delete

Availability
10.0.0
3.2.0
9.2.0

Fired when a list row is deleted by the user.

Do not rely on the source property to determine which item fired the event. Use the sectionIndex and itemIndex, or the itemId to determine the list item that generated the event, and use the bindId to check which child control fired the event.

Note that the sectionIndex and itemIndex properties of this event correspond to the List View state before the user action.

Properties

Name Type Description
section Titanium.UI.ListSection

List section from which the item is deleted.

sectionIndex Number

Section index.

itemIndex Number

Item index.

itemId String

The item ID bound to the list item that generated the event.

bubbles Boolean

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.


# insert

Availability
5.4.0
9.2.0

Fired when a list row is inserted by the user.

Do not rely on the source property to determine which item fired the event. Use the sectionIndex and itemIndex, or the itemId to determine the list item that generated the event, and use the bindId to check which child control fired the event.

Note that the sectionIndex and itemIndex properties of this event correspond to the List View state before the user action.

Properties

Name Type Description
section Titanium.UI.ListSection

List section from which the item is deleted.

sectionIndex Number

Section index.

itemIndex Number

Item index.

itemId String

The item ID bound to the list item that generated the event.

bubbles Boolean

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.


# dragstart

Availability
5.2.0
9.2.0

Fired when the user starts dragging the list view.

Different to the pull event, this event does also fire when no pullView is specified and the user drags inside the list view.

Properties

Name Type Description
bubbles Boolean

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.


# dragend

Availability
5.2.0
9.2.0

Fired when the user stops dragging the list view.

Different to the pullend event, this event does also fire when no pullView is specified and the user drags inside the list view.

Properties

Name Type Description
bubbles Boolean

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.


# marker

Availability
3.2.0
3.2.0
9.2.0

Fired when the list view displays the reference item.

This event is fired only once per reference item. Use this in conjunction with the setMarker and addMarker methods. On iOS this method does not fire when list view is in search mode.

Properties

Name Type Description
bubbles Boolean

false. This event does not bubble.

sectionIndex Number

section index of the reference item.

itemIndex Number

section item index of the reference item.

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.


# movestart

Availability
11.1.0
11.1.0
11.1.0

Fired when a list row has started moving.

This event can be used to change the UI once a new drag-and-drop interaction starts. The event properties are available in Titanium SDK 12.0.0+

Properties

Name Type Description
section Titanium.UI.ListSection

List section from which the item is moved.

sectionIndex Number

section index of the reference item.

itemIndex Number

section item index of the reference item.

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.


# moveend

Availability
11.1.0
11.1.0
11.1.0

Fired when a list row has ended moving.

This property can be used to change the UI once a drag-and-drop interaction ends.


# move

Availability
9.3.0
3.2.0
9.2.0

Fired when a list row is moved to a different location by the user.

Do not rely on the source property to determine which item fired the event. Use the sectionIndex and itemIndex, or the itemId to determine the list item that generated the event, and use the bindId to check which child control fired the event.

Note that the sectionIndex,itemIndex,targetSectionIndex and targetItemIndex properties of this event correspond to the List View state before the user action.

Properties

Name Type Description
section Titanium.UI.ListSection

List section from which the item is moved.

sectionIndex Number

Section index.

itemIndex Number

Item index.

targetSection Titanium.UI.ListSection

List section to which the item is moved. Might be the same as section property.

targetSectionIndex Number

Section index.

targetItemIndex Number

Position within the targetSection.

itemId String

The item ID bound to the list item that generated the event.

bubbles Boolean

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.


# noresults

Availability
4.2.0
3.3.0
9.2.0

Fired when the search using either searchView or searchText has no results.

When items are filtered in a list view using either the searchView or searchText, it is possible that the search returns an empty set.

While the searchView API automatically shows a No Results cell in the list view, the searchText API does not do so. Developers can listen to this event and perform appropriate actions when the search result set is empty.

Properties

Name Type Description
bubbles Boolean

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.


# pull

Availability
3.2.0
9.2.0

Fired when the user drags the list view past the top edge of the pullView.

Properties

Name Type Description
active Boolean

Determines if the pullView is completely visible (true) or partially hidden (false).

bubbles Boolean

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.


# prefetch

Availability
6.1.0
9.2.0

Fired when new list items are prefetched. The items are ordered ascending by geometric distance from the list view. Note that this event is only available on iOS 10 and later.

Use the sectionIndex and itemIndex, or the itemId to determine the list item that generated the event, and use the bindId to check which child control fired the event.

Properties

Name Type Description
prefetchedItems Array<ListItemEventType>

An array of prefetched items.

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.


# cancelprefetch

Availability
6.1.0
9.2.0

Fired when list items that previously were considered as candidates for pre-fetching were not actually used. Note that this event is only available on iOS 10 and later

Use the sectionIndex and itemIndex, or the itemId to determine the list item that generated the event, and use the bindId to check which child control fired the event.

Properties

Name Type Description
prefetchedItems Array<ListItemEventType>

An array of prefetched items.

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.


# pullend

Availability
3.2.0
9.2.0

Fired when the user stops dragging the list view and the pullView is completely visible.

Properties

Name Type Description
bubbles Boolean

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.


# editaction

Availability
5.0.0
9.2.0

Fired when the user interacts with one of the custom edit actions defined by editActions.

Do not rely on the source property to determine which item fired the event. Use the sectionIndex and itemIndex, or the itemId to determine the list item that generated the event.

Note that the sectionIndex and itemIndex properties of this event correspond to the list view state before the user action.

Properties

Name Type Description
action String

The title as defined in the row action object.

identifier String

The [identifier](RowActionType. identifier) of the row action. Only included in the event if previously defined. Available in Titanium 6.0.0 and later.

section Titanium.UI.ListSection

List section from which the event was generated.

sectionIndex Number

Section index.

itemIndex Number

Item index.

itemId String

The item ID bound to the list item that generated the event.

bubbles Boolean

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.


# scrollstart

Availability
4.1.0
4.1.0
9.2.0

Fires when the list view starts scrolling by user interaction. Calling the scrollTo methods will not fire this event

This event will fire when the user starts scrolling the list view. Use the firstVisibleSectionIndex and the firstVisibleItemIndex to determine the position of the list view.

Properties

Name Type Description
visibleItemCount Number

The number of visible items in the list view when the event fires.

firstVisibleItem Object | Number

The first visible item in the list view when the event fires; this item might not be fully visible. May be -1 on iOS.

firstVisibleSection Titanium.UI.ListSection

The first visible section in the list view when the event fires.

firstVisibleItemIndex Number

The index of the first visible item in the list view when the event fires; this item might not be fully visible. Note: The index is -1 when there are no items in the Titanium.UI.ListView.

firstVisibleSectionIndex Number

The index of the first visible section in the list view when the event fires. Note: The index is -1 when there are no items in the Titanium.UI.ListView.

bubbles Boolean

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.


# scrollend

Availability
4.1.0
4.1.0
9.2.0

Fires when the list view ends scrolling. Calling the scrollTo methods will not fire this event

This event will fire when the list view ends scrolling. Use the firstVisibleSectionIndex and the firstVisibleItemIndex to determine the position of the list view.

Properties

Name Type Description
visibleItemCount Number

The number of visible items in the list view when the event fires.

firstVisibleItem Object | Number

The first visible item in the list view when the event fires; this item might not be fully visible. May be -1 on iOS.

firstVisibleSection Titanium.UI.ListSection

The first visible section in the list view when the event fires.

firstVisibleItemIndex Number

The index of the first visible item in the list view when the event fires; this item might not be fully visible.

firstVisibleSectionIndex Number

The index of the first visible section in the list view when the event fires.

bubbles Boolean

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.


# scrolling

Availability
6.1.0
5.4.0
9.2.0

Fires when the list view is scrolling. Calling the scrollTo methods will not fire this event

This event will fire while the list view is scrolling and the user releases the finger. On iOS no event is fired when the finger is not released. Use direction to determine the scroll direction, velocity to determine scroll speed, targetContentOffset to determine where the scrolling will end (in dpi). When direction is down, velocity is negative and viceversa. On Android velocity and targetContentOffset is 0.

Properties

Name Type Description
direction String

Direction of the scroll either 'up', or 'down'.

velocity Number

The velocity of the scroll in scale factor per second

targetContentOffset Number

The expected y axis offset when the scrolling action decelerates to a stop.

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.