Android Custom PopupWindow / Dialog

Próbuję uzyskać całkowicie niestandardowe okno dialogowe lub PopupWindow, bez żadnej z domyślnych kontroli Android UI(tytuł, tło, przyciski, cokolwiek).

Czy to w ogóle możliwe? Spędziłem godziny szukając tego, ale bez powodzenia... Wydaje się, że to powinno być łatwo możliwe, ale nie mogę znaleźć.

Najchętniej byłoby to poprzez nadmuchanie widoku z XML, ale w tym momencie wszystko, co by po prostu działało, byłoby miłe.

Dzięki.
Author: benvd, 2010-05-05

2 answers

Kroki, które podjąłem:

  1. Utwórz okno dialogowe rozszerzające klasę .
  2. w onCreate, wywołaj setContentView(x, y) z x jako R. layout i y jako R. style.popupStyle (patrz poniżej).
  3. w Twoim res / wartości / stylu.xml, musisz nadpisać domyślny styl okna dialogowego. Próbowałem tylko stworzyć styl, który ma ten jako rodzica,ale nadal nie wyczyścił wszystkich domyślnych. Więc sprawdziłem Android Git tree i mam domyślny styl, i po prostu skopiuj-wklej go. This is the one:
<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>

Dostaniesz kilka błędów, po prostu rozwiąż je, kopiując więcej rzeczy z oficjalnych stylów Androida.XML i motywy.pliki xml. Oto treść mojego stylu.plik xml: http://pastebin.com/RRR15YYS

To po prostu daje białe okienko, bez granic, nic. Zacznij dostosowywać. :)

Dzięki mbaird za wprowadzenie mnie na właściwą drogę. [[4]} [edytuj] musiałem jeszcze raz poszukać własnej odpowiedzi i spędziłem co najmniej dziesięć minut szukając oficjalnego pliki stylów/motywów Androida, więc oto one, do wykorzystania w przyszłości: style.motywy xml i .xml .
 28
Author: benvd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-02 21:27:45

[[0]}wygląda na to, że próbujesz naprawdę dostosować AlertDialog . Dla tego, co chcesz zrobić, może być lepiej po prostu tworzenie własnej klasy, która rozszerza okno dialogowe, podobne do tego, jak tworzysz działania, pisząc klasę, która rozszerza aktywność.

Możesz ustawić układ XML, wywołując setContentView() wewnątrz metody onCreate() niestandardowej klasy dialogowej, tak jak w ćwiczeniu.

Natknąłem się na ograniczenia, ile ty można dostosować AlertDialogs w przeszłości, i właśnie zaimplementowane moje własne klasy dialogowe, aby uzyskać poziom dostosowania, które potrzebne.

 8
Author: Mark B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-05-05 14:17:24