A demo project for my Titanium Mobile Android ViewPager Module
Switch branches/tags
Nothing to show
Pull request Compare This branch is even with mudderman:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Resources
i18n/en
.gitignore
CHANGELOG.txt
LICENSE
LICENSE.txt
README
README.md
manifest
tiapp.xml

README.md

Description

This module brings the Android ViewPager to the Titanium Mobile SDK.

You can download a pre-built version of this app on Google Play

Reference

To create a new view pager you use the factory method createViewPager(opts).

var viewPager = module.createViewPager();

possible options to pass into the method through the options object are:

data - Array

An Array of TiView objects, alternatively as an object like this:

data: [
	{ title: "Tab title", view: viewObject }
]

or like this if you don't need tabs:

data: [
	tiView1, tiView2, tiView3
]

tabs - Object

The main options for styling the tabs. Can have the following attributes:

<tr>
	<td>style</td>
	<td>Integer constant</td>
	<td>Can be any of the following constants: <b>NONE</b>, <b>NORMAL</b>, <b>SCROLLING</b>, <b>MARKET</b></td>
</tr>

<tr>
	<td>backgroundColor</td>
	<td>Hexadecimal string</td>
	<td>The background color of an unselected tab</td>
</tr>

<tr>
	<td>backgroundColorSelected</td>
	<td>Hexadecimal string</td>
	<td>The background color of the selected tab (Not if style is MARKET)</td>
</tr>

<tr>
	<td>lineColor</td>
	<td>Hexadecimal string</td>
	<td>The color of the line underneath the tab view</td>
</tr>

<tr>
	<td>lineColorSelected</td>
	<td>Hexadecimal string</td>
	<td>The color of the line between the selected tab and the bottom line</td>
</tr>

<tr>
	<td>lineHeight</td>
	<td>Integer</td>
	<td>Height of the bottom line</td>
</tr>

<tr>
	<td>lineHeightSelected</td>
	<td>Integer</td>
	<td>Height of the line of the selected tab</td>
</tr>

<tr>
	<td colspan="3">font (Object)</td>
</tr>

<tr>
	<td>size</td>
	<td>Integer</td>
	<td>The size of the font on the tab</td>
</tr>

<tr>
	<td>color</td>
	<td>Hexadecimal string</td>
	<td>The font color of an unselected tab</td>
</tr>

<tr>
	<td>colorSelected</td>
	<td>Hexadecimal string</td>
	<td>The font color of the selected tab.</td>
</tr>

<tr>
	<td>bold</td>
	<td>Boolean</td>
	<td>If the text should bold or not.</td>
</tr>

<tr>
	<td colspan="3">padding (Object)</td>
</tr>

<tr>
	<td>left</td>
	<td>Integer</td>
	<td>the left padding of a tab</td>
</tr>

<tr>
	<td>top</td>
	<td>Integer</td>
	<td>the top padding of a tab</td>
</tr>

<tr>
	<td>right</td>
	<td>Integer</td>
	<td>the right padding of a tab</td>
</tr>

<tr>
	<td>bottom</td>
	<td>Integer</td>
	<td>the bottom padding of a tab</td>
</tr>

<tr>
	<td>title</td>
	<td>Integer</td>
	<td>Padding between tabs. <b>NOTE: Only if style is MARKET</b></td>
</tr>

<tr>
	<td>clip</td>
	<td>Integer</td>
	<td>The padding of the left and right visible tabs. A negative value will push them ouside the view area and hide some (or all) of the text. <b>NOTE: Only if style is MARKET</b></td>
</tr>
Attribute Type Description

indicator - Object

If you want your viewpager to have an indicator at the bottom of the view add this to the options.

For now you can use one attribute to the object, but more are planned.

<tr>
	<td>style</td>
	<td>Integer constant</td>
	<td>Can be <b>NONE</b> or <b>LINE</b></td>
</tr>

<tr>
	<td>color</td>
	<td>Hexadecimal string</td>
	<td>The color of the line</td>
</tr>

<tr>
	<td>height</td>
	<td>Integer</td>
	<td>The height of the line</td>
</tr>

<tr>
	<td>fadeOutTime</td>
	<td>Integer (default: 200 miliseconds)</td>
	<td>In milliseconds. How long before the line starts to fade out</td>
</tr>

<tr>
	<td>fadingTime</td>
	<td>Integer (default 500 milliseconds)</td>
	<td>In milliseconds. How long the line should be fading.</td>
</tr>
Attribute Type Description

Events

You can add three different type of events for the ViewPager:

pageChange, will trigger each time the page was changed. Parameters returned from event: to, from

pager.addEventListener("pageChange", funtion (e) {
    Ti.API.debug("Page changed from " + e.from + " to " + e.to);
});

pageScroll, will spam you with information about the page currently being scrolled: Parameters returned: page, offset, offsetPx

pager.addEventListener("pageScroll", function (e) {
    Ti.API.debug("Scrolling page " + e.page + " offset: " + e.offset + ", offset in pixels: " + e.offsetPx);
});

pageState, the state of the page being scrolled Parameters returned: page, state, stateString

pager.addEventListener("pageState", function (e) {
    Ti.API.debug("Page " + e.page + " has state " + e.state + " = " + e.stateString);
});

state can be any of the contants:

STATE_IDLE, STATE_DRAGGING, STATE_SETTLING

stateString is just a string representation of the state: idle, dragging and settling

Constants

For tab styles: NONE, NORMAL, SCROLLING and MARKET

For indicator style: LINE (more coming...)

For "pageState" event: STATE_IDLE, STATE_DRAGGING, STATE_SETTLING

Usage

See the demo project at github