Ich möchte ein benutzerdefiniertes Dialogfeld wie unten erstellen
Ich habe die folgenden Dinge versucht.
Ich habe eine Unterklasse von AlertDialog.Builder erstellt und einen benutzerdefinierten Titel und eine benutzerdefinierte Inhaltsansicht verwendet und diese verwendet, aber das Ergebnis war nicht wie erwartet.
Ein weiterer Versuch bestand darin, DialogFragment in eine Unterklasse zu unterteilen und den Dialog in onCreateDialog so anzupassen, dass das Ergebnis jedoch nicht den Erwartungen entsprach.
Dann habe ich versucht, eine einfache Dialogklasse zu verwenden . Das Ergebnis war nicht wie erwartet.
In allen drei Fällen besteht das Problem darin, dass die Größe des Dialogfelds nicht wie erwartet ist, wenn ich die Titelansicht übersehe. Wenn ich die Titelansicht verwende, führt dies zu einem dicken Rand um die Inhaltsansicht (was wirklich schlecht aussieht). Jetzt habe ich zwei Fragen im Kopf ...
Wie kann ich das erreichen? Da ich bereits so viele Dinge ausprobiert habe, wird eine direkte Antwort mehr geschätzt.
Was ist der beste Weg, um einen Fehler- oder Warndialog in einer Android-App anzuzeigen?
EDIT Android Developer Documentation empfiehlt, entweder DialogFragments oder Dialogs zu verwenden, um dem Benutzer Fehler- / Warnmeldungen anzuzeigen. Aber irgendwann sagen sie ...
Tipp: Wenn Sie ein benutzerdefiniertes Dialogfeld möchten, können Sie stattdessen eine Aktivität als Dialogfeld anzeigen, anstatt die Dialogfeld-APIs zu verwenden. Erstellen Sie einfach eine Aktivität und setzen Sie das Thema im Manifest-Element auf Theme.Holo.Dialog.
Was bedeutet das? Ist es nicht zu viel, eine Aktivität nur zum Anzeigen einer Fehlermeldung zu verwenden?
Antworten:
Hier habe ich einen einfachen Dialog erstellt, wie:
custom_dialog.xml
Du musst
extends Dialog
undimplements OnClickListener
Wie rufe ich den Dialog auf?
Aktualisierung
Nach langer Zeit bat mich einer meiner Freunde, einen Dialog über eine gekrümmte Form mit transparentem Hintergrund zu führen. Also, hier habe ich es implementiert.
Um eine gekrümmte Form zu erstellen, müssen Sie eine separate
curve_shap.XML
wie folgt erstellen :Fügen Sie dies nun
curve_shap.XML
in Ihrer Hauptansicht Layout hinzu. In meinem Fall habe ich verwendetLinearLayout
Wie nennt man das?
Ich hoffe das funktioniert bei dir.
quelle
R.id.TXT_Exit:
?Dies ist ein Beispieldialog, der mit XML erstellt wurde.
Die nächste Code-XML ist nur ein Beispiel. Das Design oder die Ansicht wird hier implementiert:
Diese Codezeilen sind Ressourcen zum Zeichnen:
Sie könnten eine Klasse erweitern Dialog, auch so etwas:
Endlich die Form des Anrufs, zum Beispiel für Ihre Aktivität:
Ich hoffe, es funktioniert für Sie.
quelle
Ein weiterer einfacher Weg, dies zu tun.
Schritt 1) Erstellen Sie ein Layout mit den richtigen IDs.
Schritt 2) Verwenden Sie den folgenden Code, wo immer Sie möchten.
quelle
Fügen Sie das folgende Thema hinzu
values -> style.xml
Verwenden Sie dieses Thema in Ihrer
onCreateDialog
Methode wie folgt:Definieren Sie Ihr Dialoglayout einschließlich der Titelleiste in der XML-Datei und legen Sie diese XML-Datei wie folgt fest:
quelle
mdialog.findViewById(R.id.element);
Einfach erst eine Klasse erstellen
Erstellen Sie dann ein custom_dialogbox_otp
dann in Ihrem zeichner unter XML-Dateien erstellen.
für round_layout_white_otp.xml
für round_layout_otp.xml
round_button
Dann benutze endlich den folgenden Code, um deinen Dialog zu visualisieren :)
deine Ausgabe :)
quelle
quelle
Einfachste Möglichkeit, ein benutzerdefiniertes Dialogfeld zu erstellen:
Dialog initialisieren und anzeigen:
Methode erstellen:
Erstellen Sie Layout-XML, das Sie möchten oder benötigen.
quelle
Sie können diese einfache Android-Dialog-Popup-Bibliothek ausprobieren , um den überfüllten Dialogcode zu entfernen. Es ist sehr einfach für Ihre Aktivität zu verwenden. Danach können Sie diesen Code in Ihrer Aktivität haben, um den Dialog anzuzeigen
Dabei ist R.layout.custom_pop Ihr benutzerdefiniertes Layout, wie Sie Ihren Dialog dekorieren möchten.
quelle
Ich fand dies der einfachste Weg, um benutzerdefinierte Dialoge anzuzeigen.
Sie haben Layout
your_layout.xml
quelle
Erstellen Sie ein benutzerdefiniertes Warnungslayout custom_aler_update.xml
Kopieren Sie dann diesen Code in Aktivität:
Kopieren Sie diesen Code in den folgenden Stil:
quelle
Die einfachste Möglichkeit, die Hintergrundfarbe und den Textstil zu ändern, besteht darin, ein benutzerdefiniertes Design für den Android-Warndialog wie folgt zu erstellen: -
: Fügen Sie einfach den folgenden Code in die Datei styles.xml ein:
: Jetzt ist die Anpassung abgeschlossen, jetzt wenden Sie sie einfach auf Ihr alertBuilder-Objekt an:
Hoffe, das wird dir helfen!
quelle
Benutzerdefinierte Vollbild-Dialogklasse in Kotlin
Erstellen Sie eine XML-Datei wie bei einer Aktivität
Erstellen Sie eine benutzerdefinierte AlertDialog-Klasse
Rufen Sie den Dialog innerhalb der Aktivität auf
Hinweis **: Wenn Ihr Dialogfeld nicht im Vollbildmodus angezeigt werden soll, löschen Sie die folgenden Zeilen
Bearbeiten Sie dann die layout_width & layout_height Ihres Top-Layouts in Ihrer XML-Datei so, dass sie entweder wrap_content oder ein fester DP-Wert ist.
Ich empfehle im Allgemeinen nicht, einen festen DP zu verwenden, da Sie wahrscheinlich möchten, dass Ihre App an mehrere Bildschirmgrößen angepasst werden kann. Wenn Sie jedoch Ihre Größenwerte klein genug halten, sollte es Ihnen gut gehen
quelle
Erstellen Sie ein Alarmdialoglayout wie folgt
und Fügen Sie den folgenden Code zu Ihrer Aktivitätsklasse hinzu
quelle
Es ist eine Klasse für Alert Dialog, sodass Sie die Klasse von jeder Aktivität aus aufrufen können, um den Code wiederzuverwenden.
XML-Datei für das gleiche ist:
quelle
Das Dialogfragment ist die einfachste Methode zum Erstellen eines benutzerdefinierten Warnungsdialogs. Befolgen Sie den obigen Code, um eine benutzerdefinierte Ansicht für Ihren Dialog zu erstellen, und implementieren Sie sie dann mithilfe des Dialogfragments. Fügen Sie Ihrer Layoutdatei den folgenden Code hinzu:
quelle
Dialogfeld "Benutzerdefinierte Warnung erstellen"
cumstomDialog.xml
Zeigen Sie Ihren benutzerdefinierten Dialog zu Ihrer Aktivität:
Rufen Sie so an:
showDialog ("Titel", "Nachricht", R.drawable.warning);
quelle
Ich poste den Kotlin-Code, den ich verwende, und er funktioniert gut für mich. Sie können auch den Klick-Listener für Dialogschaltflächen festlegen.
Das ist mein XML-Code:
layout_custom_alert_dialog.xml
mAlertDialog.kt
Schnittstelle für Klick-Listener:
onClickListener.kt
Beispielnutzung
Ich hoffe, dies wird dir helfen!
quelle
Ich benutze gerne die tcAron-Bibliothek. (Hier herunterladen: https://github.com/triocoder/tcAron )
Importklasse:
importieren com.triocoder.tcaron.tcaronlibrary.tcAronDialogs;
Schreib Dies:
tcAronDialogs.showFancyAlert (MainActivity.this, false, "Text", "Close", "ic_hub_white", 0xFFF44336);
Überprüfen Sie die Dokumentation:
https://github.com/triocoder/tcAron/wiki/showFancyAlert
quelle
Im Folgenden finden Sie den Code zum Erstellen eines benutzerdefinierten Ansichtsdialogs mit kotlin. Es folgt die Dialoglayoutdatei
Dialog erstellen und Text in der Textansicht aktualisieren
quelle
Hier ist eine sehr einfache Möglichkeit, einen benutzerdefinierten Dialog zu erstellen.
dialog.xml
MainActivity.java
quelle
Benutzerdefinierte Warnung importieren:
quelle