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