mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
OptionsMenu XML support
This commit is contained in:
55
apps/tests/pages/page16.ts
Normal file
55
apps/tests/pages/page16.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
import pageModule = require("ui/page");
|
||||
import buttonModule = require("ui/button");
|
||||
import stackModule = require("ui/layouts/stack-layout");
|
||||
import frame = require("ui/frame");
|
||||
|
||||
export function createPage() {
|
||||
var page = new pageModule.Page();
|
||||
|
||||
var iconItem = new pageModule.MenuItem();
|
||||
iconItem.text = "TEST";
|
||||
|
||||
iconItem.icon = "~/app" + "/tests" + "/test-icon.png"; // use + to stop regex replace during build
|
||||
iconItem.on("tap", () => {
|
||||
console.log("Icon item tapped");
|
||||
});
|
||||
page.optionsMenu.addItem(iconItem);
|
||||
|
||||
var textItem = new pageModule.MenuItem();
|
||||
textItem.text = "SAVE";
|
||||
textItem.on("tap", () => {
|
||||
console.log("Save item tapped");
|
||||
});
|
||||
page.optionsMenu.addItem(textItem);
|
||||
|
||||
var stackLayout = new stackModule.StackLayout();
|
||||
var count = 0;
|
||||
var btn1 = new buttonModule.Button();
|
||||
btn1.text = "add item";
|
||||
btn1.on("tap", () => {
|
||||
console.log("adding menu item");
|
||||
|
||||
var newItem = new pageModule.MenuItem();
|
||||
var text = "item " + count;
|
||||
newItem.text = text
|
||||
newItem.on("tap", () => {
|
||||
console.log("ITEM [" + text + "] tapped");
|
||||
});
|
||||
page.optionsMenu.addItem(newItem);
|
||||
count++;
|
||||
});
|
||||
|
||||
stackLayout.addChild(btn1);
|
||||
|
||||
var btn2 = new buttonModule.Button();
|
||||
btn2.text = "navigate";
|
||||
btn2.on("tap", () => {
|
||||
var nextPage = "app/tests/pages/page16";
|
||||
frame.topmost().navigate(nextPage);
|
||||
});
|
||||
|
||||
stackLayout.addChild(btn2);
|
||||
|
||||
page.content = stackLayout;
|
||||
return page;
|
||||
}
|
||||
20
apps/tests/pages/page17.ts
Normal file
20
apps/tests/pages/page17.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import observable = require("data/observable");
|
||||
import pages = require("ui/page");
|
||||
|
||||
// Event handler for Page "loaded" event attached in main-page.xml
|
||||
export function pageLoaded(args: observable.EventData) {
|
||||
// Get the event sender
|
||||
var page = <pages.Page>args.object;
|
||||
|
||||
var textItem = new pages.MenuItem();
|
||||
textItem.text = "from loaded";
|
||||
textItem.on("tap", () => {
|
||||
console.log("item added in page.loaded tapped!!!");
|
||||
});
|
||||
page.optionsMenu.addItem(textItem);
|
||||
}
|
||||
|
||||
export function optionTap(args) {
|
||||
console.log("item added form XML tapped!!!");
|
||||
}
|
||||
|
||||
9
apps/tests/pages/page17.xml
Normal file
9
apps/tests/pages/page17.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<Page loaded="pageLoaded">
|
||||
<Page.optionsMenu>
|
||||
<MenuItem text="test" tap="optionTap"/>
|
||||
<MenuItem text="with icon" tap="optionTap" icon="~/app/test-icon.png"/>
|
||||
</Page.optionsMenu>
|
||||
<StackLayout>
|
||||
<Button text="button" />
|
||||
</StackLayout>
|
||||
</Page>
|
||||
BIN
apps/tests/test-icon.png
Normal file
BIN
apps/tests/test-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
Reference in New Issue
Block a user