Xedox_SlimeLime
@Xedox_SlimeLime
Java программист, Android разработчик, изучаю C.

Где найти реализацию ContextMenu в Android?

Если коротко, то мне нужно создавать контекстное меню, без активности. Можно и с ней, но тогда надо будет делать класс зависимым от активности. Я уже примерно час пытался найти какую-нибуть реализацию, даже в AOSP я ничего не нашел. Ну как не нашел, я нашел класс ContextMenuBuilder, но он был не дописан.

Мне желательно получить реализатор из androidx или MaterialDesign, чтоб меню использовало цвета настроенын мною в themes.xml.
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
402d
@402d
начинал с бейсика на УКНЦ в 1988

Если коротко, то мне нужно создавать контекстное меню, без активности.

Я не знаю зачем Вам это, но сам добавляю пункт "Печатать" в меню выделенного текста так
<activity
            android:name=".ui.TextActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:label="@string/label_text">
            <intent-filter>
                <action android:name="android.intent.action.PROCESS_TEXT" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>
        </activity>

Как это сделать без активити ? Думаю никак. В 13-ом таймаут до ANR, если активити не получит фокус в видимый на экране элемент урезали по самые гланды.

Или Вы про android.view.ContextMenu ?
Не уверен, что его перенесли в androidx. Никогда не использовал, мне хватало типа диалог у дропбокса.

Если очень хочется попробуй через программное создание алерт диалога.

Вы хотите аналог менюшки по правому клику мышки на десктопах сделать по длинному клику?

Тогда представьте, что там каждая строка не меньше 48dp по высоте. (типовое требование к зонам кассания)
И для пользователяй скорее всего придется писать инструкции. Отучили их, что реакция может отличаться по тапу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы