Android пользовательский PopupWindow/Dialog

Я пытаюсь получить абсолютно пользовательское Диалоговое окно или PopupWindow, без любого Android по умолчанию средства управления UI (заголовок, фон, кнопки, безотносительно).

Действительно ли это возможно вообще? Я провел часы, ища это, но никакую удачу... Кажется, что это должно быть легко возможно, но я не могу найти его.

Предпочтительно это было бы путем расширения Представления от XML, но в этой точке что-либо, что будет просто работать, было бы хорошо.

Спасибо.

14
задан benvd 5 May 2010 в 16:29
поделиться

2 ответа

Шаги, которые я предпринял:

  1. Создание класса, расширяющего Диалог .
  2. В onCreate вызовите setContentView (x, y) , где x будет вашим R.layout, а y - R.style.popupStyle (см. Ниже ).
  3. В вашем res / values ​​/ style.xml вам нужно переопределить стиль DialogWindow по умолчанию. Я попытался просто создать стиль, в котором он был бы родительским, но все равно не были удалены все значения по умолчанию. Итак, я проверил дерево git Android, получил стиль по умолчанию и просто скопировал его. Вот одна:
<style name="Theme.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowTitleStyle">@android:style/DialogWindowTitle</item>
    <item name="android:windowBackground">@android:drawable/panel_background</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>

Вы получите несколько ошибок, просто устраните их, скопировав дополнительные данные из официальных файлов Android styles.xml и themes.xml. Вот содержимое моего файла styles.xml: http://pastebin.com/RRR15YYS

Это просто дает вам белое всплывающее окно, без границ, ничего. Начать настройку. :)

Спасибо mbaird за то, что направил меня на правильный путь.

[edit] Мне нужно было снова найти свой ответ, и я потратил не менее десяти минут на поиск официальных файлов стилей / тем Android, так что вот они, на будущее: styles.xml и themes.xml .

28
ответ дан 1 December 2019 в 07:27
поделиться

Похоже, вы действительно пытаетесь настроить AlertDialog . Для того, что вы хотите сделать, вам может быть лучше просто создать свой собственный класс, расширяющий Dialog , аналогично тому, как вы создаете действия, написав класс, расширяющий Activity .

Вы можете установить XML-макет, вызвав setContentView () внутри метода onCreate () вашего пользовательского класса Dialog, как и в Activity.

Я сталкивался с ограничениями в том, насколько вы можете настраивать AlertDialogs в прошлом, и я только что реализовал свои собственные классы Dialog, чтобы получить необходимый уровень настройки.

8
ответ дан 1 December 2019 в 07:27
поделиться
Другие вопросы по тегам:

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