Android Custom PopupWindow / Dialog

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

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

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

Благодарю.

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

  1. Создайте класс, расширяющий Dialog .
  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>
 </ Стиль> 

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

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

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

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

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

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

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