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の重大な失敗の一つに数えて良いだろう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です