Я сам зіткнувся з цим, і найкращий спосіб, який я міг знайти, - це використовувати FrameLayout і закласти спеціальний HorizontalScrollView (HSV) у верхній частині меню. Всередині HSV переглядаються ваші програми, але є прозорий погляд як першої дитини. Це означає, що коли HSV має нульове зміщення прокрутки, меню відобразиться (і все-таки на диво можна натискати).
Коли програма запускається, ми прокручуємо HSV до зміщення першого видимого перегляду програми, і коли ми хочемо показати меню, ми прокручуємо назад, щоб відкрити меню через прозорий перегляд.
Код тут, а два нижніх кнопки (під назвою HorzScrollWithListMenu та HorzScrollWithImageMenu) у програмі Launch показують найкращі меню, які я міг придумати:
Демонстраційна демонстрація меню Android
Знімок екрана з емулятора (середина прокрутки):
Знімок екрана з пристрою (повний прокруток). Зауважте, що моя піктограма не така широка, як піктограма меню Facebook, тому перегляд меню та перегляд "програми" не вирівнюються.