7

Il testo predefinito in datepicker è troppo grande per la mia app. Ho visto un modo suggerito per cambiarlo here, ma la ricerca in giro per le visioni testuali nidificate all'interno della classe datepicker sembra clunky e soggetta a errori.Come modificare il testo in datepicker?

C'è un modo migliore/più pulito per farlo?

risposta

1

uso sottostante Codice

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

uso sottostante Codice:

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

per Android 4.1 +, 1- "getChildAt (0)" ha lavorato per me non "getChildAt (1)", 2- dimensioni del testo cambia indietro quando si gira verso l'alto o verso il basso, questo è non disponibile a tutti –

+1

Consiglio vivamente di non usare questa soluzione. il 'getChildAt (1)' come può mattone quando l'ordine delle viste cambia all'interno della libreria. può funzionare su una versione ed essere rotto con diverse implementazioni –

3

Il modo più semplice per modificare la dimensione del carattere di datepicker/TimePicker/numberpicker è la personalizzazione del tema.

Nel file degli stili, impostare la dimensione del carattere predefinita nel modo seguente.

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

funziona perfettamente bene! Grazie per la soluzione rapida. –

0

Ho usato il seguente CustomDateAndTimePicker. Questo è molto facile da personalizzare. In queste diverse opzioni come la data, il mese, l'anno, le ore e i minuti hanno il proprio selettore di numeri. In questo modo puoi personalizzare anche la dimensione del testo, il colore e altri stili. è possibile aggiungere il proprio selettore di numeri per uso personale

0

Il codice di Sean funziona. ma sta cambiando anche la dimensione del font per tutti gli altri componenti (textViews, pulsanti, ecc ...) Ecco la soluzione.

Creare uno stile diverso per la selezione orari e utilizzarlo sul tema del time picker.

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

e utilizzarlo sul vostro TimePicker

android:theme="@style/my_time_picker_style" 

Guardate il video, come ho fatto https://youtu.be/JMJ2ujhk9c0

1

approccio di Sean ha fatto alcuni difetti nell'interfaccia utente della raccoglitrice stessa nel caso in cui ci sei un numero dei raccoglitori e penso che non sia perfetto applicare le dimensioni del testo a tutti i componenti sotto il selettore. Di seguito è quello che ho usato e funziona perfettamente senza glitch UI.

<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> 
Problemi correlati