7

Die Standard-Textsize in Datepicker ist zu groß für meine App. Ich habe einen Weg gesehen, um es zu ändern here, aber herumfischen für die Textansichten innerhalb der Datepicker-Klasse verschachtelt scheint klobig und fehleranfällig.Wie ändere ich die Textgröße in Datepicker?

Gibt es einen besseren/saubereren Weg, es zu tun?

Antwort

1

Verwendung unter Code

DatePicker picker = (DatePicker)findViewById(R.id.dp_date); 
    ViewGroup childpicker 

    = (ViewGroup) 
    findViewById(Resources.getSystem().getIdentifier("month" /*rest is: 
    day, year*/, "id", "android")); 

    EditText textview = (EditText) 
    picker.findViewById(Resources.getSystem().getIdentifier("timepicker_input", 
    "id", "android")); 
    textview.setTextSize(30); 
    textview.setTextColor(Color.GREEN); 
1

Verwendung unter Code:

ViewGroup childpicker = (ViewGroup)datePicker.findViewById(Resources.getSystem().getIdentifier("month", "id", "android")); 

EditText mornthEt = (EditText)childpicker.getChildAt(1);// month widget 

//change textsize and textcolor for mornthEt 

mornthEt.setTextSize(30); 

mornthEt.setTextColor(Color.GREEN); 
+1

für Android 4.1 + 1- "getChildAt (0)" für mich gearbeitet nicht "getChildAt (1)", 2- Textgröße ändert sich zurück, wenn Sie oder unten drehen, ist dies nicht hilfreich bei allen –

+1

Ich würde dringend empfehlen, diese Lösung nicht zu verwenden. das 'getChildAt (1)', wie es kann Ziegel, wenn die Reihenfolge der Ansichten innerhalb der Bibliothek ändert. kann auf einer Version arbeiten und mit verschiedenen Implementierungen gebrochen werden –

3

Der einfachste Weg, um die Schriftgröße von picker/Timepicker/Number ist das Thema Anpassung zu ändern.

In Styles-Datei, legen Sie die Standardschriftgröße auf die folgende Weise fest.

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="android:textSize">22sp</item> 
</style> 
+0

funktioniert einwandfrei! Danke für die schnelle Lösung. –

0

Ich habe folgende CustomDateAndTimePicker verwendet. Dies ist sehr einfach anzupassen. Darin haben verschiedene Optionen wie Datum, Monat, Jahr, Stunden und Minute ihre eigene Zahlenauswahl. So können Sie Textgröße, Farbe und andere Stile auch anpassen. Sie können Ihre eigene Zahlenauswahl für Ihre benutzerdefinierte Verwendung hinzufügen

0

Seans Code funktioniert. Aber es ändert auch die Schriftgröße für alle anderen Komponenten (TextViews, Buttons, etc ...) Also hier ist die Lösung.

Erstellen Sie einen anderen Stil für Zeitauswahl und verwenden Sie es auf Zeitauswahl-Thema.

<style name="my_time_picker_style"> 
    <item name="android:textSize">24sp</item> 
</style> 

und verwenden Sie es auf Ihrem Timepicker

android:theme="@style/my_time_picker_style" 

Blick auf Video, wie ich tat https://youtu.be/JMJ2ujhk9c0

1

Seans Ansatz einige Probleme in der Benutzeroberfläche von Picker machte sich für den Fall gibt eine Reihe sind von Pickern und ich denke, es ist nicht perfekt, Textgröße auf alle Komponenten unter dem Pflücker anzuwenden. Unten ist, was ich verwendet habe und es funktioniert perfekt ohne UI Störungen.

<style name="PickerTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:editTextStyle">@style/PickerEditText</item> 
</style> 

<style name="PickerEditText" parent="ThemeOverlay.AppCompat.Dark"> 
    <item name="android:textSize">24sp</item> 
</style> 
Verwandte Themen