Android - Ändern Sie den Hintergrund des benutzerdefinierten Dialogfeldtitels

8

Ich erstelle einen benutzerdefinierten Dialog und ich möchte wissen, wie man den Hintergrund der Titelleiste ändert.

Ich habe zwei Ansätze ausprobiert:

1 - Ich habe die AlertDialog.Builder-Methode 'setCustomTitle' ausprobiert. Ich habe eine einfache Layoutansicht erstellt, die aus einer Textansicht mit Layoutbreite und -höhe 'Match_Parent' und Hintergrundfarbe besteht. Wenn ich die App starte, zeigt nur die obere Hälfte der Titelleiste die Hintergrundfarbe an. Die untere Hälfte zeigt immer noch die Standard-Hintergrundfarbe des Themas. Weiß jemand warum?

2 - Ich habe mein eigenes Dialogthema erstellt. Ich habe einen Stil mit Elternvererbung zu '@android: style / Theme.Holo.Light.Dialog' erstellt. Ich habe das dann im AlertDialog.Builder-Konstruktor übergeben - neuer AlertDialog.Builder (this, R.style.test_dialog). Es scheint gut, aber irgendwie ist der Dialog in einem Dialog verpackt. Eine quadratische Box umgibt den Dialog. Weiß jemand warum?

    
CLDev 15.02.2012, 22:24
quelle

5 Antworten

35

Sie können einen Stil wie,

erstellen %Vor%

Und Sie können den Dialog instanziieren:

%Vor%

Nun erscheint der Dialog mit schwarzer Titelhintergrundfarbe.

    
Santosh 16.02.2012 11:27
quelle
4

Die Darstellung im Dialogfeld "Dialoge in einem Dialog" wird durch den Fensterhintergrund des Dialogfelds verursacht. Jeder Dialog hat dies, aber die Standard-Android-Dialoge haben den Fensterhintergrund auf transparent gesetzt. Fügen Sie dieses Element in Ihrem benutzerdefinierten Dialogfeldthema hinzu:

%Vor%     
Groppe 18.11.2013 14:13
quelle
1

Ich benutze Mono Android (Xamarin); Ich zeige Ihnen eine andere Alternative, die in meiner App verwendet wird, um einen Dialog in einem Fragment zu erstellen:

%Vor%

Resource.Layout.listitem_custom_dialog: Dies ist ein benutzerdefiniertes Listview-Layout, hier ist die XML-Datei:

%Vor%

Android.Resource.Id.Title : Dies ist die ID der Textansicht, die den Dialogtitel enthält. und es ist durch android vordefiniert. Auf diese Weise erhalten Sie einen Dialog, den Sie wie gewünscht gestalten können.

    
Desire Aheza 16.02.2015 17:35
quelle
1

Erstellen Sie eine XML-Layoutdatei für Ihren Titel und blenden Sie ihn auf und setzen Sie ihn auf den AlertDialog als

%Vor%     
Samuel Robert 29.01.2016 06:12
quelle
1

Sie können einfach einen benutzerdefinierten Titel wie diesen festlegen

%Vor%

und im custom_title-Layout können Sie einen benutzerdefinierten Titel wie diesen erstellen

%Vor%     
ice spirit 09.02.2017 11:14
quelle

Tags und Links