Fix SegmentedBar selectedIndex change event when items not bound.

The Android implemantation wasn't raising the event in that case.
This commit is contained in:
Hristo Deshev
2016-05-26 15:35:49 +03:00
parent 69f34e86e7
commit b812411ce1
3 changed files with 55 additions and 30 deletions

View File

@@ -120,10 +120,10 @@ export class SegmentedBar extends view.View implements definition.SegmentedBar {
let idx: number;
let itemsLength = this.items ? this.items.length : 0;
if (types.isNullOrUndefined(index)) {
idx = itemsLength;
idx = itemsLength - 1;
} else {
if (index < 0 || index > itemsLength) {
idx = itemsLength;
idx = itemsLength - 1;
} else {
idx = index;
}

View File

@@ -60,9 +60,6 @@ function onItemsPropertyChanged(data: dependencyObservable.PropertyChangeData) {
view.android.setCurrentTab(view.selectedIndex);
}
view.android.setOnTabChangedListener(null);
view.android.setOnTabChangedListener(view._listener);
var tabHost = <android.widget.TabHost>view.android;
var tabIndex: number;
@@ -193,6 +190,12 @@ export class SegmentedBar extends common.SegmentedBar {
}));
this.android.addTab(tab);
this.resetNativeListener();
}
private resetNativeListener() {
this.android.setOnTabChangedListener(null);
this.android.setOnTabChangedListener(this._listener);
}
}