[Titanium Mobile]TabGroupのTop LevelでAndroidのMenuを表示

android_menuTitanium SDK 3.1.3.GAに上げたらAndroidのメニューが表示されなくなったので調査したときの覚書。

環境: Titanium SDK 3.1.3.GA

TabGroupの各タブのトップだけ表示されず、下の階層へ画面遷移すれば普通にメニューが表示される。

今までは共通関数で、

win = Titanium.UI.createWindow();
win.activity.onCreateOptionsMenu = function(e) {
    e.menu.add({title: L('menu1')});
});

とやっていた。

どうやらTabGroup直下のwndowにはactivity(≒画面)がないらしい。

Titaniumではactivityを持っているwindowを「heavyweight」windowと呼んでいて、「heavyweight」なwindowを作成するかどうかを条件に応じて判断している。詳しくは下記。

 

TabGroup直下の場合はTabGroupのActivityでonCreateOptionsMenuする必要があるみたい。

tabGroup = Titanium.UI.createTabGroup();
tabGroup.activity.onCreateOptionsMenu = function(e) {
    e.menu.add({title: L('menu1')});
});

 

< Related Posts >

コメント

このブログの人気の投稿

既存のディレクトリ(フォルダ)にgit cloneして上書きしたい

【.NET】DataGridViewを選択した際に背景色を変更しない

Can't open PID file /var/run/nginx.pid (yet?) after start: Too many levels of symbolic links