I have following code, which is supposed to create ViewLoop as main view and display menu on select button.
import Toybox.Application;
import Toybox.Lang;
import Toybox.WatchUi;
import Toybox.Graphics;
class testApp extends Application.AppBase {
function initialize() {
AppBase.initialize();
}
function onStart(state as Dictionary?) as Void {
}
function onStop(state as Dictionary?) as Void {
}
function getInitialView() as [WatchUi.Views] or [WatchUi.Views, WatchUi.InputDelegates] {
var loop = new WatchUi.ViewLoop(new Factory(), {:wrap => true});
return [ loop, new WatchUi.ViewLoopDelegate(loop)];
//return [ new TestView(), new Delegate()];
}
}
class TestView extends WatchUi.View {
function initialize() {
View.initialize();
}
function onLayout(dc as Dc) as Void {
setLayout(Rez.Layouts.MainLayout(dc));
}
function onShow() as Void {
}
function onUpdate(dc as Dc) as Void {
View.onUpdate(dc);
}
function onHide() as Void {
}
}
class Factory extends WatchUi.ViewLoopFactory{
function initialize(){
ViewLoopFactory.initialize();
}
public function getSize(){
return 3;
}
public function getView(page as Lang.Number){
var view = new TestView();
return [view, new Delegate()];
}
}
function getApp() as testApp {
return Application.getApp() as testApp;
}
class Delegate extends WatchUi.BehaviorDelegate {
public function initialize(){
BehaviorDelegate.initialize();
}
public function onSelect() as Lang.Boolean {
System.println("menu key");
showActionMenu();
return true;
}
function showActionMenu() as Void {
WatchUi.showActionMenu(new Rez.Menus.ActionMenu(),
new WatchUi.ActionMenuDelegate());
}
}
When running in simulator, everything works fine. Unfortunately on real HW (Instinct2) following issues can be observed
- Battery status is drawn in mini-display area

Menu indicator (defined as
<bitmap id="menu" personality="system_icon_dark__hint_action_menu system_loc__hint_action_menu" />
) only appears for a moment, when scrolling through pages (and at completely wrong possition)

- When attempting to display menu, watch crashes going to reboot