So stellen Sie die Schriftgröße für den Text von Dialogfeldern ein

9

Ich habe eine Android-App, die einige benutzerdefinierte Dialoge verwendet, die von XML-Layouts aufgeblasen werden. Der Inhalt der Ansicht des Dialogfelds stammt aus dem XML-Layout, aber die eigentlichen positiven und negativen Schaltflächen werden durch Aufrufen der setPositiveButton- und setNegativeButton-Methoden des Builders hinzugefügt, sodass ich das Styling nicht steuern kann (oder zumindest nicht beherrschen kann) der Tasten selbst.

Siehe die onCreateDialog-Methode aus meiner LoginConfirmationDialog.java-Datei, die DialogFragment erweitert. Es erscheint im Grunde ein sehr einfacher Dialog, der nach der Bestätigung fragt, wer sich anmeldet (d. H. "Bist du Joe Schmoe?", Mit den Schaltflächen Ja und Nein).

Das XML-Layout hat in diesem Fall nur ein einziges TextView, und um das zu vereinfachen (weil die Benutzer Bauarbeiter mit großen, schmutzigen Fingern sind, die großen Text und große Schaltflächen benötigen), habe ich die Schriftart für das TextView hübsch gemacht groß. Die beiden Schaltflächen haben jedoch eine viel kleinere Schrift für ihren Text, und da sie nicht Teil meines Layouts sind und mit den Methoden setPositiveButton und setNegativeButton hinzugefügt werden, wie kontrolliere ich die Schriftgröße?

%Vor%     
Jim 09.04.2013, 18:26
quelle

5 Antworten

30

Anstatt builder.create() zurückzugeben, versuchen Sie dies .-

%Vor%     
ssantos 09.04.2013, 18:52
quelle
4

Ich brauchte eine Weile, um Asoks Antwort zu integrieren, da ich anonyme innere Klassen für Buttons verwendete, also musste ich die Button-Referenzen in den Griff bekommen. Das funktioniert. Stellen Sie sicher, dass es nach der Zeile messageDialog.show () geht:

%Vor%

Hinweis: Es wird empfohlen, sp als Einheit für die Textgröße zu verwenden. Im Gegensatz zu px ist die Gerätedichte unabhängig.

    
TomV 28.07.2015 10:58
quelle
3

Da Sie bereits eine XML-Datei für das Dialogfeld verwenden, warum nicht einfach die beiden Schaltflächen in das Layout einfügen und die onClick -Handler in der Dialogerstellung festlegen, sollte so etwas funktionieren. Ich benutze etwas ähnliches.

Hier ist ein kurzes Beispiel:

%Vor%

Ich benutze auch sehr gerne die folgenden, um Textgrößen zu setzen. Dadurch können verschiedene Bildschirmgrößen eine andere Textgröße erhalten (Sie können mit dem Wert float nach Ihren Bedürfnissen spielen):

%Vor%     
jnthnjns 09.04.2013 19:00
quelle
2

Sie sollten die folgende Antwort überprüfen:

In Dialog.java (Android src) wird ein ContextThemeWrapper verwendet. Sie könnten also die Idee kopieren und etwas tun

Sie müssen nur die folgende Codezeile ändern:

<item name="android:textSize">10sp</item> auf Ihre gewünschte Größe.

Und vergiss nicht, auch die Kommentare der Antwort zu überprüfen.

Viel Glück.

    
Shajeel Afzal 09.04.2013 18:54
quelle
0

Meine Vorgehensweise besteht darin, die Schaltflächen in onResume() zu erhalten und sie dort zu konfigurieren

%Vor%     
Dino Tw 10.09.2017 21:23
quelle