Merge pull request #3047 from NativeScript/offscreen

Add TabView.androidOffscreenTabLimit property
This commit is contained in:
Rossen Hristov
2016-11-09 07:52:11 +02:00
committed by GitHub
4 changed files with 84 additions and 0 deletions

View File

@@ -244,6 +244,13 @@ export class TabView extends View implements definition.TabView, AddArrayFromBui
//
}
get androidOffscreenTabLimit(): number {
return undefined;
}
set androidOffscreenTabLimit(value: number) {
//
}
public _onSelectedIndexPropertyChangedSetNativeValue(data: PropertyChangeData) {
var index = this.selectedIndex;
if (types.isUndefined(index)) {

View File

@@ -214,6 +214,9 @@ export class TabView extends common.TabView {
}
this._viewPager = new android.support.v4.view.ViewPager(this._context);
if (this._androidOffscreenTabLimit !== 1) {
this._viewPager.setOffscreenPageLimit(this._androidOffscreenTabLimit);
}
this._viewPager.setId(this._androidViewId);
var lp = new org.nativescript.widgets.CommonLayoutParams();
lp.row = 1;
@@ -332,6 +335,20 @@ export class TabView extends common.TabView {
public _getAndroidTabView(): org.nativescript.widgets.TabLayout {
return this._tabLayout;
}
private _androidOffscreenTabLimit: number = 1;
get androidOffscreenTabLimit(): number {
return this._androidOffscreenTabLimit;
}
set androidOffscreenTabLimit(value: number) {
if (value !== this._androidOffscreenTabLimit) {
this._androidOffscreenTabLimit = value;
if (this._viewPager) {
this._viewPager.setOffscreenPageLimit(value);
}
}
}
}
export class TabViewStyler implements style.Styler {

View File

@@ -114,6 +114,12 @@ declare module "ui/tab-view" {
*/
iosIconRenderingMode: string;
/**
* Gets or sets the number of tabs that should be retained to either side of the current tab in the view hierarchy in an idle state.
* Tabs beyond this limit will be recreated from the TabView when needed.
*/
androidOffscreenTabLimit: number;
/**
* String value used when hooking to the selectedIndexChanged event.
*/