Внешний вид context menu

Воспроизвожу шаги по туториалу https://o7planning.org/ru/12615/android-contextmenu-tutorial Вернее буквальный копипаст. Разве что у меня API 23. Android Studio 4.0.1

И в результате вместо ожидаемого (как у них)

введите сюда описание изображения

получается меню в "старом стиле"

введите сюда описание изображения

Почему так? И что делать?

ps: Давать ссылку куда-то не очень хорошо, но я не вижу смысла копипастить типичный базовый код для создания меню. У меня нет проблем с созданием меню. У меня проблема его внешнего вида несмотря на androidX, appcompat, более высокий API level и так далее.


Ответы (1 шт):

Автор решения: Tiarait

В API 24 поменяли вид ContextMenu, а в туториале для скрина использовали эмулятор с API 24+, хотя подробной документации про смену ContextMenu не нашел. В том же Api 24 существует проблема с отображением

Так же в API 24 были добавлены ряд функций для класса View, например public boolean showContextMenu(float x, float y) которая и отвечает за вызов нового ContextMenu

Если важен одинаковый стиль то можно программно вызывать старый метод

button.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            button.showContextMenu();
            return true;
        }
    });

источник из stackoverflow

тема мне показалась интересной, если еще что найду - дополню

→ Ссылка