A list view is used to present information, organized in to sections and items, in a vertically-scrolling view.
![]() |
![]() |
![]() |
Android | iOS | Windows Phone |
---|
Use the Titanium.UI.createListView method or <ListView>
Alloy element to create a ListView
.
A ListView
object is a container for ListSection
objects that are, in turn, containers for 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.
To create a ListView
object using JavaScript, pass an array of ListDataItem objects to the list section's
items property, which creates and adds each array
element as a row to a single ListSection. Use the ListView
's
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.
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 templates property, then use the style name to set the 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 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.
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.
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 create 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.
TableViewRow properties: The following properties and their accessors are not
available for ListItem
: accessibilityLabel
, className
, editable
, hasCheck
,
hasChild
, hasDetail
, leftImage
, moveable
and rightImage
.
hasCheck
, hasChild
, and hasDetail
, use the accessoryType
property.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
.
rows
, use the items
property.rowCount
, use the itemCount
property. (Not yet implemented.)TableViewSection methods: The following methods are not supported by ListSection
:
add
, remove
and rowAtIndex
.
rowAtIndex
, use the getItemAt
method.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
.
scrollToIndex
, use the scrollToItem
method.selectRow
, use the selectItem
method. (Currently implemented only for iOS.)ListItems
with a ListView
.
You have to manipulate them with the ListSection
they are contained in.As a list view inherently scrolls, it creates a very poor user experience when it contains other scrolling views, such as a ScrollableView or TextArea. Thus, this layout is strongly discouraged.
In order to use TextField inside ListView
, SOFT_INPUT_ADJUST_PAN
must be set to the window that is containing the ListView
, otherwise the TextField may not be able to gain focus.
When a TextField is placed in a row near the bottom of a ListView
,
in a window that is configured with
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
ScrollView, "Scroll View as a Table View", example.
Editing a ListView through user initiated actions is supported through the following properties.
ListItem properties:
canEdit - When this is set to true, it allows the item to be deleted
from the ListView through a user initiated action. The item can only be deleted when the ListView is
in editing mode. The ListView can enter 'editing' mode either by explicitly setting the editing
property to true, or by swiping accross an item whose canEdit
property is set to true. When the user
deletes the item, a delete event is fired.
editActions - When canEdit is set to true, the default behavior is to allow the item to be deleted. This behavior can be overridden with on iOS 8 and above by using the editActions property of the item. When this property is defined, the user is instead presented with the options as defined by the title property. In this scenario the ListView does not fire a delete event. Instead the editaction event is fired and the developer is free to update the ListView as required. This is supported on Titanium SDK 4.1.0 and later on the iOS platform.
canInsert - When this is set to true, it allows the item to insert a new item to the ListView through a user initiated action. A new item can only be inserted when the ListView is in editing mode. The ListView can enter 'editing' mode by explicitly setting the editing property to true. When the user clicks on the '+' sign of the item, an insert event is fired. Note: A new item is not inserted automatically when clicking on the '+' sign to let you decide the way to insert a new item. You can use any inserting method of Ti.UI.ListSection, for example insertItemsAt and appendItems.
canMove - When this item is set to true, it allows the item to be moved to a different location within the ListView. The item can only be moved when the ListView is put in editing mode by explicitly setting the editing property to true. When the user moves an item, a move event is fired.
ListView properties:
editing - Determines if the List View is in a state where items can be deleted or reordered.
pruneSectionsOnEdit - When this property is set to true and the user action results in a section having no other items, the section is deleted from the List View. Please note that this property only applies to the sections whose items are being edited.
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: 'white'});
var listView = Ti.UI.createListView();
var sections = [];
var fruitSection = Ti.UI.createListSection({ headerTitle: 'Fruits'});
var fruitDataSet = [
{properties: { title: 'Apple'}},
{properties: { title: 'Banana'}},
];
fruitSection.setItems(fruitDataSet);
sections.push(fruitSection);
var vegSection = Ti.UI.createListSection({ headerTitle: 'Vegetables'});
var vegDataSet = [
{properties: { title: 'Carrots'}},
{properties: { title: 'Potatoes'}},
];
vegSection.setItems(vegDataSet);
sections.push(vegSection);
listView.sections = sections;
win.add(listView);
win.open();
var fishSection = Ti.UI.createListSection({ headerTitle: 'Fish'});
var fishDataSet = [
{properties: { title: 'Cod'}},
{properties: { title: 'Haddock'}},
];
fishSection.setItems(fishDataSet);
listView.appendSection(fishSection);
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 fruitSection = Ti.UI.createListSection({ headerTitle: 'Fruits / Frutas'});
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'}}
];
fruitSection.setItems(fruitDataSet);
sections.push(fruitSection);
var vegSection = Ti.UI.createListSection({ headerTitle: 'Vegetables / Verduras'});
var vegDataSet = [
{ info: {text: 'Carrot'}, es_info: {text: 'Zanahoria'}, pic: {image: 'carrot.png'}},
{ info: {text: 'Potato'}, es_info: {text: 'Patata'}, pic: {image: 'potato.png'}}
];
vegSection.setItems(vegDataSet);
sections.push(vegSection);
var grainSection = Ti.UI.createListSection({ headerTitle: 'Grains / Granos'});
var grainDataSet = [
{ info: {text: 'Corn'}, es_info: {text: 'Maiz'}, pic: {image: 'corn.png'}},
{ info: {text: 'Rice'}, es_info: {text: 'Arroz'}, pic: {image: 'rice.png'}}
];
grainSection.setItems(grainDataSet);
sections.push(grainSection);
listView.setSections(sections);
win.add(listView);
win.open();
This sample shows how the pullView property could be utilized along with the pull and pullend events to create a refresh control.
var win = Ti.UI.createWindow({backgroundColor: 'white'});
var listView = Ti.UI.createListView({height:'90%', top:0});
var sections = [];
var fruitSection = Ti.UI.createListSection({ headerTitle: 'Fruits'});
var fruitDataSet = [
{properties: { title: 'Apple'}},
{properties: { title: 'Banana'}},
];
fruitSection.setItems(fruitDataSet);
sections.push(fruitSection);
var vegSection = Ti.UI.createListSection({ headerTitle: 'Vegetables'});
var vegDataSet = [
{properties: { title: 'Carrots'}},
{properties: { title: 'Potatoes'}},
];
vegSection.setItems(vegDataSet);
var fishSection = Ti.UI.createListSection({ headerTitle: 'Fish'});
var fishDataSet = [
{properties: { title: 'Cod'}},
{properties: { title: 'Haddock'}},
];
fishSection.setItems(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.create2DMatrix();
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.create2DMatrix();
imageArrow.animate({transform:unrotate, duration:180});
labelStatus.text = 'Pull down to refresh...';
} else {
var rotate = Ti.UI.create2DMatrix().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();
'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 backgroundColor="white">
<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'
}
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>
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>
Whether the view should be "hidden" from (i.e., ignored by) the accessibility service.
Requires: Android 4.0 and later iOS 5.0 and later
On iOS this is a direct analog of the accessibilityElementsHidden
property defined in the
UIAccessibility
Protocol.
The native property is only available in iOS 5.0 and later; if
accessibilityHidden
is specified on earlier versions of iOS, it is ignored.
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
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:
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.
Default: Title or label of the control.
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.
Default: State or value of the control.
Determines whether multiple items of this list view can be selected at the same time while editing the table.
Default: false
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 Titanium.UI.LIST_ACCESSORY_TYPE_DETAIL) and any child
templates that are controls, such as a button, slider, etc.
Default: true
Determines whether this list view items can be selected while editing the table.
Default: false
Coordinate of the view about which to pivot an animation.
Used on iOS only. For Android, use Titanium.UI.Animation.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.
Default: Center of this view.
Current position of the view during an animation.
Current position of the view during an animation.
The name of the API that this proxy corresponds to.
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, Button
returns Ti.UI.Button
.
Background color of the view, as a color name or hex triplet.
For information about color values, see the "Colors" section of Titanium.UI.
Default: Transparent
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.
Default: Same as the normal background color of this view.
Disabled background image for the view, specified as a local file path or URL.
Default: If `backgroundDisabledImage` is undefined, and the normal background image `backgroundImage` is set, the normal image is used when this view is disabled.
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
.
Default: Same as the normal background color of this view.
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
.
Default: If `backgroundFocusedImage` is undefined, and the normal background image `backgroundImage` is set, the normal image is used when this view is focused.
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 and 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.
The following code excerpt creates two views, one with a linear gradient and one with a radial gradient.
var win1 = Titanium.UI.createWindow({
title:'Tab 1',
backgroundColor:'#fff',
layout: 'vertical'
});
var radialGradient = Ti.UI.createView({
top: 10,
width: 100,
height: 100,
backgroundGradient: {
type: 'radial',
startPoint: { x: 50, y: 50 },
endPoint: { x: 50, y: 50 },
colors: [ 'red', 'blue'],
startRadius: 50,
endRadius: 0,
backfillStart: true
}
});
var linearGradient = Ti.UI.createView({
top: 10,
width: 100,
height: 100,
backgroundGradient: {
type: 'linear',
startPoint: { x: '0%', y: '50%' },
endPoint: { x: '100%', y: '50%' },
colors: [ { color: 'red', offset: 0.0}, { color: 'blue', offset: 0.25 }, { color: 'red', offset: 1.0 } ],
}
});
win1.add(radialGradient);
win1.add(linearGradient);
win1.open();
Default: No gradient
Background image for the view, specified as a local file path or URL.
Default: 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, text fields, and so on), platform-specific default images are used.
Size of the left end cap.
See the section on backgroundLeftCap and backgroundTopCap behavior on iOS in Titanium.UI.View.
Default: 0
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
Size of the top end cap.
See the section on backgroundLeftCap and backgroundTopCap behavior on iOS in Titanium.UI.View.
Default: 0
Border color of the view, as a color name or hex triplet.
For information about color values, see the "Colors" section of Titanium.UI.
Default: Same as the normal background color of this view (Android), black (iOS).
Radius for the rounded corners of the view's border.
Each corner is rounded using an arc of a circle.
Default: 0
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
View's bottom position, in platform-specific units.
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.
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
Determines if the list view can scroll in response to user actions.
Set to false to disable scrolling.
Default: true
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
View's center position, in the parent view's coordinates.
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.
Array of this view's child views.
Array of this view's child views.
View's clipping behavior.
Setting this to Titanium.UI.iOS.CLIP_MODE_ENABLED enforces all child views to be clipped to this views bounds. Setting this to Titanium.UI.iOS.CLIP_MODE_DISABLED allows child views to be drawn outside the bounds of this view. When set to Titanium.UI.iOS.CLIP_MODE_DEFAULT or when this property is not set, clipping behavior is inferred. See section on iOS Clipping Behavior in Titanium.UI.View.
Default: Undefined. Behaves as if set to Titanium.UI.iOS.CLIP_MODE_DEFAULT.
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.
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
Determines whether the scroll-bounce of the list view should be disabled.
Set to true
to disable the vertical bounce.
Default: false
Determines if the list view is currently in editing mode.
For more information see the "Editing Support" section of Titanium.UI.ListView.
Default: false
Base elevation of the view relative to its parent in pixels.
Requires: Android 5 and later
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.
Whether view should be focusable while navigating with the trackball.
Default: false
When set to false, the ListView will not draw the divider after the header view.
Default: undefined but behaves as false
List view header as a view that will be rendered instead of a label.
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).
View height, in platform-specific units.
View height, in platform-specific units.
Defaults to: If undefined, defaults to either Titanium.UI.FILL or Titanium.UI.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
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:
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
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.
Default: false
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
The manner in which the keyboard is dismissed when a drag begins in the list view.
This API can be assigned the following constants:
Default: Undefined (behaves like Titanium.UI.iOS.KEYBOARD_DISMISS_MODE_NONE)
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 centered 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 (Release 2.1.0 and later).
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:
top
or bottom
is specified, the child is centered in the
row.top
or bottom
is specified, the child is aligned to either
the top or bottom of the row, with the specified amount of padding.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.
On Android and iOS prior to Release
2.1.0, the horizontal layout always wraps and the horizontalWrap
property is not supported.
Default: Composite layout
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
View's left position, in platform-specific units.
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.
The Window or TabGroup whose Activity lifecycle should be triggered on the proxy.
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.
The insets for the list view header and footer. This property is applicable on iOS 7 and greater.
Requires: iOS 7.0 and later
In iOS 7 and later, 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.setListSeparatorInsets({
left:10,
right:10
});
Opacity of this view, from 0.0 (transparent) to 1.0 (opaque).
Default: 1.0 (opaque)
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.
Default: undefined but behaves as false
The preview context used in the 3D-Touch feature "Peek and Pop".
Requires: iOS 9.0 and later
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 Titanium.UI.iOS.forceTouchSupported.
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
Background color of the wrapper view when this view is used as either Titanium.UI.ListView.pullView or Titanium.UI.TableView.headerPullView.
Default: Undefined. Results in a light grey background color on the wrapper view.
View positioned above the first row that is only revealed when the user drags the list view contents down.
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 Titanium.UI.View.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.
The bounding box of the view relative to its parent, in system units.
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.
View positioned above the first row that is only revealed when the user drags the list view contents down.
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.
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)
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)
The insets for search results separators (applies to all cells & iOS-only).
The insets for search results separators (applies to all cells & iOS-only).
In iOS 7 and later, 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.
The separator style of the search results (iOS-only).
This API can be assigned the following constants:
View's right position, in platform-specific units.
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.
Clockwise 2D rotation of the view in degrees.
Clockwise 2D rotation of the view in degrees.
Translation values are applied to the static post layout value.
Clockwise rotation of the view in degrees (x-axis).
Clockwise rotation of the view in degrees (x-axis).
Translation values are applied to the static post layout value.
Clockwise rotation of the view in degrees (y-axis).
Clockwise rotation of the view in degrees (y-axis).
Translation values are applied to the static post layout value.
The insets for list view cells (applies to all cells). This property is applicable on iOS 7 and greater.
Requires: iOS 7.0 and later
In iOS 7 and later, 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.setRowSeparatorInsets({
left:10,
right:10
});
Scaling of the view in x-axis in pixels.
Scaling of the view in x-axis in pixels.
Translation values are applied to the static post layout value.
Scaling of the view in y-axis in pixels.
Scaling of the view in y-axis in pixels.
Translation values are applied to the static post layout value.
Style of the scrollbar.
This API can be assigned the following constants:
Default: Titanium.UI.iOS.ScrollIndicatorStyle.DEFAULT
The string to use as the search parameter.
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.
Search field to use for the list view.
Search field to use for the list view.
Provides the same functionality as the search property in 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>
Number of sections in this list view.
Number of sections in this list view.
Array of objects (with title
and index
properties) to control the list view index.
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.
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
height of the ListView separator.
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.
The insets for list view separators (applies to all cells). This property is applicable on iOS 7 and greater.
deprecated
5.2.0 Use <Titanium.UI.ListView.listSeparatorInsets> instead.
Requires: iOS 7.0 and later
In iOS 7 and later, 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.
Separator style constant.
This API can be assigned the following constants:
Determines whether this list view displays a vertical scroll indicator.
Set to false
to hide the vertical scroll indicator.
Default: true
The size of the view in system units.
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.
Determines keyboard behavior when this view is focused.
This API can be assigned the following constants:
Default: Titanium.UI.Android.SOFT_KEYBOARD_DEFAULT_ON_FOCUS
Style of the list view.
Style should always be set before setting the sections on list view.
This API can be assigned the following constants:
Default: Titanium.UI.iOS.ListViewStyle.PLAIN
The insets for the table view header and footer. This property is applicable on iOS 7 and greater.
deprecated
5.4.0 Use <Titanium.UI.ListView.listSeparatorInsets> instead.
Requires: iOS 7.0 and later
In iOS 7 and later, 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.setTableSeparatorInsets({
left:10,
right:10
});
Contain key-value pairs mapping a style name (key) to an ItemTemplate (value).
Contain key-value pairs mapping a style name (key) to an ItemTemplate (value).
This property cannot be changed once a window has been opened.
The view's tintColor. This property is applicable on iOS 7 and greater.
Requires: iOS 7.0 and later
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:
The view's top position.
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.
Determines whether view should receive touch events.
If false, will forward the events to peers.
Default: true
A material design visual construct that provides an instantaneous visual confirmation of touch point.
Requires: Android 5.0 and later
This is an opt-in feature available from Android Lollipop. Touch feedback is applied only if the backgroundColor is a solid color.
Default: false
Optional touch feedback ripple color. This has no effect unless touchFeedback
is true.
Requires: Android 5.0 and later
Default: Theme provided color.
Transformation matrix to apply to the view.
Android only supports 2DMatrix transforms.
Default: Identity matrix
A name to identify this view in activity transition.
Requires: Android 5 and later
Name should be unique in the View hierarchy.
Horizontal location of the view relative to its left position in pixels.
Horizontal location of the view relative to its left position in pixels.
Translation values are applied to the static post layout value.
Vertical location of the view relative to its top position in pixels.
Vertical location of the view relative to its top position in pixels.
Translation values are applied to the static post layout value.
Depth of the view relative to its elevation in pixels.
Requires: Android 5 and later
Translation values are applied to the static post layout value.
Determines the color of the shadow.
Default: Undefined. Behaves as if transparent.
Determines the offset for the shadow of the view.
Default: Undefined. Behaves as if set to (0,-3)
Determines the blur radius used to create the shadow.
Default: Undefined. Behaves as if set to 3.
Determines whether the view is visible.
Default: true
View's width, in platform-specific units.
View's width, in platform-specific units.
Defaults to: If undefined, defaults to either Titanium.UI.FILL or Titanium.UI.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
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:
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
Z-index stack order position, relative to other sibling views.
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.
Adds a child to this view's hierarchy.
The child view is added as the last child in this view's hierarchy.
Although all views inherit from Titanium.UI.View, not all views are capable of containing other views. In particular:
The following views are not intended to act as containers that can hold other views:
Adding children to the these views may be supported on some platforms, but is not guaranteed to work across platforms. Where it is supported, it may not work as expected.
For maximum portability, these views should be treated as if they do not support children.
Instead of adding children to these views, applications can positon other views as
siblings. For example, instead of adding a button as a child of a WebView
, you can add
the button to the web view's parent such that it appears on top of the web view.
A few view objects act as special-purpose containers--that is, they only manage
certain types of children, and many of them support a special means of adding
these children, instead of the general add
method. These containers include:
ButtonBar and TabbedBar are designed
to hold their own internally-created buttons, assigned by adding strings to the "labels" array.
Views added using the add
method are displayed on top of these buttons.
Picker. Can only hold PickerRows
and PickerColumns
, which
are added using the add
method. Adding other types of views to a Picker
is not
supported.
TableView is a specialized container for
TableViewSection
and TableViewRow
objects. These objects must be
added using the properties and methods that TableView
provides
for adding and removing sectons and rows.
On some platforms, it is possible to add arbitrary child views to a table view
using the add
method. However, this is not guaranteed to work on all platforms,
and in general, should be avoided.
TableViewSection is a specialized container
for TableViewRow
objects, which are added using the add
method. The add
method
on TableViewSection
can only be used to add TableViewRow
objects.
Toolbar is designed to hold buttons and certain
other controls, added to its items
array. Views added using the add
method are
displayed on top of the controls in the items
array.
The Tab
, TabGroup
, NavigationWindow
and SplitWindow
objects are
special containers that manage windows. These are discussed in the
"Top-Level Containers" section.
There are certain top-level containers that are not intended to be added as the children of other views. These top-level containers include Titanium.UI.Window, Titanium.UI.iPad.SplitWindow, Titanium.UI.iOS.NavigationWindow, and Titanium.UI.TabGroup. Other types of views must be added to a top-level container in order to be displayed on screen.
The special containers Titanium.UI.iOS.NavigationWindow,
Titanium.UI.iPad.SplitWindow, Titanium.UI.Tab, and
Titanium.UI.TabGroup manage windows.
These managed windows may be referred to as children of the
container, but they are not added using the add
method.
Tab
is another kind of special container: it is not itself a top-level container,
but can only be used within a TabGroup
. You cannot add
a Tab
to an arbitrary
container.
View to add to this view's hierarchy.
You may pass an array of views, e.g. view.add([subview1, subview2]
.
Adds the specified callback as an event listener for the named event.
Name of the event.
Callback function to invoke when the event is fired.
Adds a reference item in the list view.
See marker event for details.
Dictionary to describe the reference item.
Animates this view.
The 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 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.
The rect property can be used to determine the actual size and position of the view.
Either a dictionary of animation properties or an Animation object.
Function to be invoked upon completion of the animation.
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.
Section or sections to add to the list.
Animation properties. (iOS only.)
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.
A dictionary of properties to apply.
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.
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.
View that specifies the destination coordinate system to convert to. If this argument is not a view, an exception will be raised.
Deletes an existing section.
On iOS, the section can be deleted with an animation by specifying the animation
parameter.
Index of the section to delete.
Animation properties. (iOS only.)
Deselects a specific item.
Section index.
Item index.
Finishes a batch update of the View's layout properties and schedules a layout pass of the view tree.
deprecated since 3.0.0
Use the <Titanium.Proxy.applyProperties> method to batch-update layout properties.
Since the layout pass scheduled is asynchronous, the rect
and size values may not be available immediately after
finishLayout
is called.
To be notified when the layout pass completes, add a listener for the postlayout event.
Fires a synthesized event to any registered listeners.
Name of the event.
A dictionary of keys and values to add to the Titanium.Event object sent to the listeners.
Gets the value of the separatorInsets property.
deprecated since 5.2.0
Use <Titanium.UI.ListView.listSeparatorInsets> instead.
Gets the value of the tableSeparatorInsets property.
deprecated since 5.4.0
Use <Titanium.UI.ListView.listSeparatorInsets> instead.
Returns the matching view of a given view ID.
The ID of the view that should be returned. Use the id
property in your views to
enable it for indexing in this method.
Hides this view.
Animation options for Android. Since Release 5.1.0.
Inserts a view at the specified position in the children array.
Useful if the layout
property is set to horizontal
or vertical
.
Pass an object with the following key-value pairs:
view
(Titanium.UI.View): View to insertposition
(Number): Position in the children array to
insert the view. If omitted, inserts the view to the end of the array.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.
Index of the section to insert before.
Section or sections to insert.
Animation properties. (iOS only.)
Removes a child view from this view's hierarchy.
View to remove from this view's hierarchy.
Removes all child views from this view's hierarchy.
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);
Name of the event.
Callback function to remove. Must be the same function passed to addEventListener
.
Replaces a view at the specified position in the children array.
Useful if the layout
property is set to horizontal
or vertical
.
Pass an object with the following key-value pairs:
view
(Titanium.UI.View): View to insertposition
(Number): Position in the children array of
the view elment to replace.Replaces an existing section.
On iOS, the section may be replaced with an animation by setting the animation
parameter.
Index of the section to update.
section data to update.
Animation properties. (iOS only.)
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.
Section index.
Item index.
Animation properties. (iOS, Android and Windows)
Selects an item in the list using the specified item and section indices.
Index of the section the item is in.
Index of the item to select.
Sets the value of the accessibilityHidden property.
New value for the property.
Sets the value of the accessibilityHint property.
New value for the property.
Sets the value of the accessibilityLabel property.
New value for the property.
Sets the value of the accessibilityValue property.
New value for the property.
Sets the value of the allowsMultipleSelectionDuringEditing property.
New value for the property.
Sets the value of the allowsSelection property.
New value for the property.
Sets the value of the allowsSelectionDuringEditing property.
New value for the property.
Sets the value of the anchorPoint property.
New value for the property.
Sets the value of the backgroundColor property.
New value for the property.
Sets the value of the backgroundDisabledColor property.
New value for the property.
Sets the value of the backgroundDisabledImage property.
New value for the property.
Sets the value of the backgroundFocusedColor property.
New value for the property.
Sets the value of the backgroundFocusedImage property.
New value for the property.
Sets the value of the backgroundGradient property.
New value for the property.
Sets the value of the backgroundImage property.
New value for the property.
Sets the value of the backgroundLeftCap property.
New value for the property.
Sets the value of the backgroundRepeat property.
New value for the property.
Sets the value of the backgroundTopCap property.
New value for the property.
Sets the value of the borderColor property.
New value for the property.
Sets the value of the borderRadius property.
New value for the property.
Sets the value of the borderWidth property.
New value for the property.
Sets the value of the bottom property.
New value for the property.
Sets the value of the bubbleParent property.
New value for the property.
Sets the value of the canScroll property.
New value for the property.
Sets the value of the caseInsensitiveSearch property.
New value for the property.
Sets the value of the clipMode property.
New value for the property.
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.
Dictionary to describe the insets.
Determines whether, and how, the content inset change should be animated.
Sets the value of the content offset of the list view without animation by default.
Dictionary with the properties x
, y
. Pass in animated
true
as a second dictionary parameter.
The x
and y
coordinates reposition the top-left point of the scrollable region of the list view.
The animated
property is optional and set to false
by default.
Sets the value of the defaultItemTemplate property.
New value for the property.
Sets the value of the dimBackgroundForSearch property.
New value for the property.
Sets the value of the disableBounce property.
New value for the property.
Sets the value of the editing property.
New value for the property.
Sets the value of the elevation property.
New value for the property.
Sets the value of the focusable property.
New value for the property.
Sets the value of the headerDividersEnabled property.
New value for the property.
Sets the value of the headerTitle property.
New value for the property.
Sets the value of the headerView property.
New value for the property.
Sets the value of the height property.
New value for the property.
Sets the value of the hiddenBehavior property.
New value for the property.
Sets the value of the horizontalWrap property.
New value for the property.
Sets the value of the keepScreenOn property.
New value for the property.
Sets the value of the keepSectionsInSearch property.
New value for the property.
Sets the value of the keyboardDismissMode property.
New value for the property.
Sets the value of the layout property.
New value for the property.
Sets the value of the lazyLoadingEnabled property.
New value for the property.
Sets the value of the left property.
New value for the property.
Sets the value of the lifecycleContainer property.
New value for the property.
Sets the value of the listSeparatorInsets property.
New value for the property.
Sets a reference item in the list view.
This method replaces previous reference items with the current one. See marker event for details.
Dictionary to describe the reference item.
Sets the value of the opacity property.
New value for the property.
Sets the value of the overrideCurrentAnimation property.
New value for the property.
Sets the value of the previewContext property.
New value for the property.
Sets the value of the pruneSectionsOnEdit property.
New value for the property.
Sets the value of the pullBackgroundColor property.
New value for the property.
Sets the value of the pullView property.
New value for the property.
Sets the value of the refreshControl property.
New value for the property.
Sets the value of the resultsBackgroundColor property.
New value for the property.
Sets the value of the resultsSeparatorColor property.
New value for the property.
Sets the value of the resultsSeparatorInsets property.
New value for the property.
Sets the value of the resultsSeparatorStyle property.
New value for the property.
Sets the value of the right property.
New value for the property.
Sets the value of the rotation property.
New value for the property.
Sets the value of the rotationX property.
New value for the property.
Sets the value of the rotationY property.
New value for the property.
Sets the value of the rowSeparatorInsets property.
New value for the property.
Sets the value of the scaleX property.
New value for the property.
Sets the value of the scaleY property.
New value for the property.
Sets the value of the scrollIndicatorStyle property.
New value for the property.
Sets the value of the searchText property.
New value for the property.
Sets the value of the searchView property.
New value for the property.
Sets the value of the sectionIndexTitles property.
New value for the property.
Sets the value of the sections property.
New value for the property.
Sets the value of the selectedItems property.
New value for the property.
Sets the value of the separatorColor property.
New value for the property.
Sets the value of the separatorHeight property.
New value for the property.
Sets the value of the separatorInsets property.
deprecated since 5.2.0
Use <Titanium.UI.ListView.listSeparatorInsets> instead.
New value for the property.
Sets the value of the separatorStyle property.
New value for the property.
Sets the value of the showVerticalScrollIndicator property.
New value for the property.
Sets the value of the softKeyboardOnFocus property.
New value for the property.
Sets the value of the style property.
New value for the property.
Sets the value of the tableSeparatorInsets property.
deprecated since 5.4.0
Use <Titanium.UI.ListView.listSeparatorInsets> instead.
New value for the property.
Sets the value of the templates property.
New value for the property.
Sets the value of the tintColor property.
New value for the property.
Sets the value of the top property.
New value for the property.
Sets the value of the touchEnabled property.
New value for the property.
Sets the value of the touchFeedback property.
New value for the property.
Sets the value of the touchFeedbackColor property.
New value for the property.
Sets the value of the transform property.
New value for the property.
Sets the value of the transitionName property.
New value for the property.
Sets the value of the translationX property.
New value for the property.
Sets the value of the translationY property.
New value for the property.
Sets the value of the translationZ property.
New value for the property.
Sets the value of the viewShadowColor property.
New value for the property.
Sets the value of the viewShadowOffset property.
New value for the property.
Sets the value of the viewShadowRadius property.
New value for the property.
Sets the value of the visible property.
New value for the property.
Sets the value of the width property.
New value for the property.
Sets the value of the willScrollOnStatusTap property.
New value for the property.
Sets the value of the zIndex property.
New value for the property.
Makes this view visible.
Animation options for Android. Since Release 5.1.0.
Starts a batch update of this view's layout properties.
deprecated since 3.0.0
Use the <Titanium.Proxy.applyProperties> method to batch-update layout properties.
To prevent a layout pass each time a property is modified, call startLayout
before
changing any properties that may change this view's layout. This initiates a batch update
mode where layout changes are deferred.
Call finishLayout to end batch update mode and trigger a layout pass. For example:
view.startLayout();
view.top = 50;
view.left = 50;
view.finishLayout();
Note that any property changes made during the batch update may be deferred until
finishLayout
is called. This may vary somewhat by platform. For example, changing the
text of a label may trigger a layout pass. In iOS, updating the label text is
deferred.
See also: updateLayout, finishLayout, postlayout event.
Returns an image of the rendered view, as a Blob.
The honorScaleFactor
method is only supported on iOS.
Function to be invoked upon completion. If non-null, this method will be performed asynchronously. If null, it will be performed immediately.
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.
Performs a batch update of all supplied layout properties and schedules a layout pass after they have been updated.
deprecated since 3.0.0
Use the <Titanium.Proxy.applyProperties> method to batch-update layout properties.
This is another way to perform a batch update. The updateLayout
method is called with a
dictionary of layout properties to perform the batch update. For example:
view.updateLayout({top:50, left:50});
This is equivalent to the following:
view.startLayout();
view.top = 50;
view.left = 50;
view.finishLayout();
See also: startLayout, finishLayout, postlayout event.
Layout properties to be updated.
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
Requires: iOS 10.0 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.
An array of prefetched items.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
List section from which the item is deleted.
Section index.
Item index.
The item ID bound to the list item that generated the event.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
Fired when the user interacts with one of the custom edit actions defined by Titanium.UI.ListItem.editActions.
Requires: iOS 8.0 and later
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.
The title as defined in the row action object.
The [identifier](RowActionType. identifier) of the row action. Only included in the event if previously defined. Available in Titanium 6.0.0 and later.
List section from which the event was generated.
Section index.
Item index.
The item ID bound to the list item that generated the event.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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
The title of the index clicked.
The index number clicked.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
List section from which the item is deleted.
Section index.
Item index.
The item ID bound to the list item that generated the event.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
List section if the item is contained in a list section.
Section index.
Item index.
The item ID bound to the list item that generated the event.
The bind ID of the control that generated this event, if one exists.
Returns true
if the detail button is clicked else returns false
.
Only returns true
if the accessoryType
property is set to
Titanium.UI.LIST_ACCESSORY_TYPE_DETAIL. All other accessories return false
if
clicked.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
false. This event does not bubble.
section index of the reference item.
section item index of the reference item.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
List section from which the item is moved.
Section index.
Item index.
List section to which the item is moved. Might be the same as section
property.
Section index.
Position within the targetSection
.
The item ID bound to the list item that generated the event.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
Requires: iOS 10.0 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.
An array of prefetched items.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
Fired when the user drags the list view past the top edge of the pullView.
Determines if the pullView
is completely visible (true) or partially hidden (false).
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
Fired when the user stops dragging the list view and the pullView is completely visible.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
Fired when the user interacts with one of the custom edit actions defined by Titanium.UI.ListItem.editActions.
This event has been removed
5.0.0 Use <Titanium.UI.ListView.editaction> instead.
Requires: iOS 8.0 and later
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.
The title as defined in the row action object.
List section from which the event was generated.
Section index.
Item index.
The item ID bound to the list item that generated the event.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
The number of visible items in the list view when the event fires.
The first visible item in the list view when the event fires; this item might not be fully visible.
The first visible section in the list view when the event fires.
The index of the first visible item in the list view when the event fires; this item might not be fully visible.
The index of the first visible section in the list view when the event fires.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
Direction of the scroll either 'up', or 'down'.
The velocity of the scroll in scale factor per second
The expected y axis offset when the scrolling action decelerates to a stop.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.
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.
The number of visible items in the list view when the event fires.
The first visible item in the list view when the event fires; this item might not be fully visible.
The first visible section in the list view when the event fires.
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.
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.
false. This event does not bubble.
Source object that fired the event.
Name of the event fired.
True if the event will try to bubble up if possible.
Set to true to stop the event from bubbling.