HoneycombのOptionsMenuの仕様がクソい

HoneycombではMenuボタンを廃止しActionBarのボタンに移動させる方向で対応が行われている。
ただしtargetSdkVersionを11未満を指定して作られたpre HoneycombアプリはSystemBarにMenuボタンが表示されることで互換性が保たれる。


ところがtargetSdkVersionを11以上に指定するとMenuボタンを表示する手段が存在せず、ActionBarを非表示にしてしまうとOptionsMenuを出す手段がなくなってしまい、自力で別途ボタンを用意する必要がある。
pre Honeycombのビューア系アプリではNotificationBarとTitleBarを両方非表示にして表示領域を大きく取るのが一般的であるが、Honeycombでは(ハードキー相当のSystemBarはともかくとして)TitleBarに相当するActionBarを消してしまうとMenuを押す手段がなくなってしまう。
このため、Honeycombアプリでは以下の3通りの対応から選択する必要がある。
(1)ActionBarを必ず表示する
(2)ActionBarを非表示にした画面ではOptionsMenuを使わない
(3)targetSdkVersionを11以上にしない(SystemBarにMenuボタンが出る)
各所でも(3)のwork aroundが公然と勧められている。
Honeycomb APIの重大な失敗の一つに数えて良いだろう。

コメントを残す

メールアドレスが公開されることはありません。

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*