mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-16 20:11:24 +08:00
Merge pull request #1361 from NativeScript/nnikolov/TabViewExportsIssue
Added parent view for views inside TabView.
This commit is contained in:
@ -392,41 +392,4 @@ export class TabViewTest extends testModule.UITest<tabViewModule.TabView> {
|
||||
|
||||
export function createTestCase(): TabViewTest {
|
||||
return new TabViewTest();
|
||||
}
|
||||
|
||||
export function test__tabview_selectedindex_will_work_from_xml() {
|
||||
var p = <pageModule.Page>builder.parse(
|
||||
'<Page>' +
|
||||
'<TabView selectedIndex= "1">' +
|
||||
'<TabView.items>'+
|
||||
'<TabViewItem title="First">' +
|
||||
'<TabViewItem.view>' +
|
||||
'<Label text="First View" />' +
|
||||
'</TabViewItem.view>' +
|
||||
'</TabViewItem>' +
|
||||
'<TabViewItem title= "Second">' +
|
||||
'<TabViewItem.view>' +
|
||||
'<Label text="Second View" />' +
|
||||
'</TabViewItem.view>' +
|
||||
'</TabViewItem>' +
|
||||
'</TabView.items>' +
|
||||
'</TabView>' +
|
||||
'</Page>');
|
||||
|
||||
function testAction(views: Array<viewModule.View>) {
|
||||
var tab: tabViewModule.TabView = <tabViewModule.TabView>p.content;
|
||||
|
||||
TKUnit.wait(0.2);
|
||||
|
||||
TKUnit.assertEqual(tab.selectedIndex, 1);
|
||||
};
|
||||
|
||||
helper.navigate(function () { return p; });
|
||||
|
||||
try {
|
||||
testAction([p.content, p]);
|
||||
}
|
||||
finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
import {Label} from "ui/label";
|
||||
import {Observable} from "data/observable";
|
||||
import {Page} from "ui/page";
|
||||
|
||||
export function loaded(args) {
|
||||
(<Observable>(<Label>args.object).page.bindingContext).set("testPassed", true);
|
||||
}
|
||||
|
||||
export function onNavigatingTo(args) {
|
||||
(<Page>args.object).bindingContext = args.context;
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
<Page navigatingTo="onNavigatingTo">
|
||||
<TabView selectedIndex= "1">
|
||||
<TabView.items>
|
||||
<TabViewItem title="First">
|
||||
<TabViewItem.view>
|
||||
<Label text="First View" loaded="loaded"/>
|
||||
</TabViewItem.view>
|
||||
</TabViewItem>
|
||||
<TabViewItem title= "Second">
|
||||
<TabViewItem.view>
|
||||
<Label text="Second View" />
|
||||
</TabViewItem.view>
|
||||
</TabViewItem>
|
||||
</TabView.items>
|
||||
</TabView>
|
||||
</Page>
|
@ -15,6 +15,8 @@ import {Label} from "ui/label";
|
||||
import {Page} from "ui/page";
|
||||
import {Button} from "ui/button";
|
||||
import {View} from "ui/core/view";
|
||||
import {TabView} from "ui/tab-view";
|
||||
import {Observable} from "data/observable";
|
||||
import {TemplateView} from "./template-builder-tests/template-view";
|
||||
import myCustomControlWithoutXml = require("./mymodule/MyControl");
|
||||
import listViewModule = require("ui/list-view");
|
||||
@ -920,4 +922,51 @@ export function test_EventInCodelessFragment() {
|
||||
});
|
||||
|
||||
TKUnit.assert(notified, "Expected the child to raise the test event.");
|
||||
}
|
||||
|
||||
export function test_tabview_selectedindex_will_work_from_xml() {
|
||||
var p = <Page>builder.parse(
|
||||
'<Page>' +
|
||||
'<TabView selectedIndex= "1">' +
|
||||
'<TabView.items>'+
|
||||
'<TabViewItem title="First">' +
|
||||
'<TabViewItem.view>' +
|
||||
'<Label text="First View" />' +
|
||||
'</TabViewItem.view>' +
|
||||
'</TabViewItem>' +
|
||||
'<TabViewItem title= "Second">' +
|
||||
'<TabViewItem.view>' +
|
||||
'<Label text="Second View" />' +
|
||||
'</TabViewItem.view>' +
|
||||
'</TabViewItem>' +
|
||||
'</TabView.items>' +
|
||||
'</TabView>' +
|
||||
'</Page>');
|
||||
|
||||
function testAction(views: Array<viewModule.View>) {
|
||||
var tab: TabView = <TabView>p.content;
|
||||
|
||||
TKUnit.wait(0.2);
|
||||
|
||||
TKUnit.assertEqual(tab.selectedIndex, 1);
|
||||
};
|
||||
|
||||
helper.navigate(function () { return p; });
|
||||
|
||||
try {
|
||||
testAction([p.content, p]);
|
||||
}
|
||||
finally {
|
||||
helper.goBack();
|
||||
}
|
||||
}
|
||||
|
||||
export function test_TabViewHasCorrectParentChain() {
|
||||
var testFunc = function(page: Page) {
|
||||
TKUnit.assert(page.bindingContext.get("testPassed"));
|
||||
}
|
||||
var moduleName = __dirname.substr(fs.knownFolders.currentApp().path.length);
|
||||
var model = new Observable();
|
||||
model.set("testPassed", false);
|
||||
helper.navigateToModuleAndRunTest(("." + moduleName + "/mymodulewithxml/TabViewParentChain"), model, testFunc);
|
||||
}
|
@ -322,6 +322,7 @@
|
||||
"apps/tests/xml-declaration/mainPage.ts",
|
||||
"apps/tests/xml-declaration/mymodule/MyControl.ts",
|
||||
"apps/tests/xml-declaration/mymodulewithxml/MyControl.ts",
|
||||
"apps/tests/xml-declaration/mymodulewithxml/TabViewParentChain.ts",
|
||||
"apps/tests/xml-declaration/template-builder-tests/event-in-codeless-fragment.ts",
|
||||
"apps/tests/xml-declaration/template-builder-tests/event-in-template.ts",
|
||||
"apps/tests/xml-declaration/template-builder-tests/template-view.ts",
|
||||
|
@ -168,6 +168,7 @@ export class TabView extends view.View implements definition.TabView, view.AddAr
|
||||
if (!newItem.view) {
|
||||
throw new Error("TabViewItem at index " + i + " does not have a view.");
|
||||
}
|
||||
this._addView(newItem.view, i);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -241,6 +241,7 @@ export class TabView extends common.TabView {
|
||||
}
|
||||
|
||||
item._parent = this;
|
||||
this._addView(item.view, idx);
|
||||
tabItems.push(this.createTabItem(item));
|
||||
});
|
||||
|
||||
|
@ -194,8 +194,6 @@ export class TabView extends common.TabView {
|
||||
for (i = 0; i < length; i++) {
|
||||
item = <TabViewItem>newItems[i];
|
||||
|
||||
this._addView(item.view);
|
||||
|
||||
if (item.view.ios instanceof UIViewController) {
|
||||
newController = <UIViewController>item.view.ios;
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user