Chcę utworzyć niestandardowe okno dialogowe, jak poniżej
Próbowałem następujących rzeczy.
Utworzyłem podklasę AlertDialog.Builder i użyłem niestandardowego tytułu i niestandardowego widoku treści i użyłem tego, ale wynik nie był zgodny z oczekiwaniami.
Kolejną próbą było podklasowanie DialogFragment i dostosowanie okna dialogowego wewnątrz onCreateDialog, ale wynik nie był zgodny z oczekiwaniami.
Potem spróbowałem użyć zwykłej klasy Dialog . Wynik nie był zgodny z oczekiwaniami.
We wszystkich trzech przypadkach problem polega na tym, że kiedy nie widzę widoku tytułu, rozmiar okna dialogowego nie jest zgodny z oczekiwaniami, a gdy używam widoku tytułu, wokół widoku treści jest gruba ramka (co naprawdę wygląda źle). Teraz mam dwa pytania ...
Jak mogę to osiągnąć? Ponieważ próbowałem już tak wielu rzeczy, bezpośrednia odpowiedź będzie bardziej doceniana.
Jaki jest najlepszy sposób wyświetlenia okna dialogowego błędu lub ostrzeżenia w aplikacji na Androida?
EDIT Dokumentacja programisty Androida zaleca, abyśmy używali DialogFragments lub Dialogs do wyświetlania użytkownikowi komunikatów o błędach / alertach. Jednak w pewnym momencie mówią ...
Wskazówka: jeśli chcesz mieć niestandardowe okno dialogowe, możesz zamiast tego wyświetlić działanie jako okno dialogowe zamiast korzystać z interfejsów API Dialog. Po prostu utwórz działanie i ustaw jego motyw na Theme.Holo.Dialog w elemencie manifestu.
Co to znaczy? Czy to nie za dużo, aby użyć działania tylko do wyświetlenia komunikatu o błędzie?
Odpowiedzi:
Tutaj stworzyłem prosty Dialog, taki jak:
custom_dialog.xml
Musisz
extends Dialog
iimplements OnClickListener
Jak dzwonić w oknie dialogowym?
Aktualizacje
Po długim czasie jeden z moich przyjaciół poprosił mnie o wykonanie zakrzywionego dialogu z przezroczystym tłem. Więc tutaj to zaimplementowałem.
Aby zrobić zakrzywiony kształt, musisz utworzyć osobny,
curve_shap.XML
jak poniżej,Teraz dodaj to
curve_shap.XML
w głównym widoku Układ. W moim przypadku użyłemLinearLayout
Jak to nazwać?
Mam nadzieję, że ci się uda.
źródło
R.id.TXT_Exit:
?To jest przykładowe okno dialogowe, utwórz za pomocą xml.
następny kod xml to tylko przykład, projekt lub widok jest zaimplementowany tutaj:
te wiersze kodu są zasobami do rysowania:
możesz zrobić rozszerzenie klasy Dialog, także coś takiego:
wreszcie forma połączenia, na przykład w ramach działania:
Mam nadzieję, że to dla ciebie działa.
źródło
Kolejny łatwy sposób to zrobić.
krok 1) utwórz układ z odpowiednimi identyfikatorami.
krok 2) w dowolnym miejscu użyj następującego kodu.
źródło
Dodaj poniższy motyw w
values -> style.xml
Użyj tego motywu w swojej
onCreateDialog
metodzie:Zdefiniuj układ okna dialogowego, w tym pasek tytułu w pliku xml i ustaw ten plik xml w następujący sposób:
źródło
mdialog.findViewById(R.id.element);
Proste najpierw stwórz klasę
następnie utwórz custom_dialogbox_otp
następnie w swoim rysunku możesz utworzyć poniżej plików XML.
dla round_layout_white_otp.xml
dla round_layout_otp.xml
przycisk okrągły
Następnie użyj kodu poniżej, aby wyświetlić okno dialogowe :)
twój wynik :)
źródło
źródło
Najprostszy sposób na utworzenie niestandardowego okna dialogowego:
Zainicjuj i pokaż okno dialogowe:
Utwórz metodę:
Utwórz układ XML, który chcesz lub potrzebujesz.
źródło
Możesz wypróbować tę prostą bibliotekę okien dialogowych Androida, aby wyciąć zaśmiecony kod okna dialogowego. Jest bardzo prosty w użyciu na twojej działalności. potem możesz mieć ten kod w swojej aktywności, aby wyświetlić okno dialogowe
gdzie R.layout.custom_pop to niestandardowy układ w sposób, w jaki chcesz ozdobić okno dialogowe.
źródło
Uważam to za najłatwiejszy sposób na wyświetlenie niestandardowego okna dialogowego.
Masz układ
your_layout.xml
źródło
Utwórz niestandardowy układ alertu custom_aler_update.xml
Następnie skopiuj ten kod do działania:
Skopiuj ten kod do stylu:
źródło
Najprostszym sposobem zmiany koloru tła i stylu tekstu jest utworzenie niestandardowego motywu dla okna dialogowego z ostrzeżeniem dla Androida, jak poniżej: -
: Wystarczy wstawić poniższy kod do styles.xml:
: Teraz dostosowywanie zostało zakończone, teraz po prostu zastosuj do obiektu alertBuilder:
Mam nadzieję, że ci to pomoże!
źródło
Pełny ekran niestandardowego okna dialogowego alertów w Kotlinie
Utwórz plik XML, taki sam jak działanie
Utwórz niestandardową klasę AlertDialog
Wywołaj okno dialogowe w ramach działania
Uwaga **: Jeśli nie chcesz, aby okno dialogowe było pełnoekranowe, usuń następujące wiersze
Następnie edytuj szerokość i wysokość układu swojego najwyższego układu w pliku XML, tak aby zawierała wartość wrap_content lub stała wartość DP.
Zasadniczo nie zalecam używania stałego DP, ponieważ prawdopodobnie chcesz, aby Twoja aplikacja mogła być dostosowywana do wielu rozmiarów ekranu, jednak jeśli utrzymasz wystarczająco małe wartości rozmiaru, wszystko powinno być w porządku
źródło
Utwórz układ alertu okna dialogowego podobny do tego
i Dodaj poniższy kod do swojej klasy aktywności
źródło
Jest to klasa dla okna dialogowego alertów, dzięki czemu można wywoływać klasę z dowolnego działania w celu ponownego użycia kodu.
Plik XML tego samego to:
źródło
Fragment okna dialogowego jest najprostszym sposobem utworzenia niestandardowego okna dialogowego alertu. Postępuj zgodnie z powyższym kodem, aby utworzyć niestandardowy widok okna dialogowego, a następnie zaimplementuj go za pomocą fragmentu okna dialogowego. Dodaj następujący kod do pliku układu:
źródło
Utwórz niestandardowe okno dialogowe alertu
cumstomDialog.xml
Pokaż niestandardowe okno dialogowe swojej aktywności:
Zadzwoń tak:
showDialog („Tytuł”, „Wiadomość”, R.drawable.warning);
źródło
Publikuję kod kotlin, którego używam i działa dobrze dla mnie. możesz także ustawić detektor kliknięć dla przycisków dialogowych.
to jest mój kod XML:
layout_custom_alert_dialog.xml
mAlertDialog.kt
interfejs dla nasłuchiwaczy kliknięć:
onClickListener.kt
Przykładowe użycie
Mam nadzieję, że to Ci pomoże!
źródło
Lubię korzystać z biblioteki tcAron. (Pobierz tutaj: https://github.com/triocoder/tcAron )
klasa importu:
import com.triocoder.tcaron.tcaronlibrary.tcAronDialogs;
Napisz to:
tcAronDialogs.showFancyAlert (MainActivity.this, false, „Text”, „Close”, „ic_hub_white”, 0xFFF44336);
sprawdź dokumentację:
https://github.com/triocoder/tcAron/wiki/showFancyAlert
źródło
Poniżej znajduje się kod do tworzenia niestandardowego okna dialogowego widoku z kotlin. Poniżej znajduje się plik układu okna dialogowego
tworzenie okna dialogowego i aktualizowanie tekstu w widoku tekstu
źródło
Oto bardzo prosty sposób na utworzenie niestandardowego okna dialogowego.
dialog.xml
MainActivity.java
źródło
Importuj niestandardowy alert:
źródło