Sto utilizzando il nuovo TextInputLayout per racchiudere un EditText. Quando si determino un campo presenta un errore faccio la seguente:La colorazione DrawableCompat non funziona su pre-Lollipop
Drawable drawable = DrawableCompat.wrap(getEditText().getBackground());
DrawableCompat.setTintList(drawable, ColorStateList.valueOf(Color.RED));
Questo funziona su 5.0 e trasforma il rosso sottolineatura, ma non fa nulla su 4.4 o 4.1 dispositivi di test. Cosa mi manca qui? Sembra così semplice e secondo Google "funziona" ... abbastanza sicuro di avere l'ultima versione di esso pure:
compilazione 'com.android.support:design:22.2.0'
FWIW, se faccio setColorFilter invece di setTint funziona su tutte le piattaforme, ma poi ho problemi con l'andare via e non tornare non appena lo stato attivo è impostato/lasciato/etc ... Preferirei farlo con tinta (e davvero preferisco che la tinta si applichi agli stati di messa a fuoco e non di messa a fuoco se qualcuno cerca lol extra)
Grazie!
Normalmente queste classi di compatibilità non fanno nulla. Guardano il livello dell'API ed è supportata la funzionalità rilevante, quindi se lo fanno non fanno semplicemente nulla. Basta guardare il codice sorgente e scoprirlo. Darei un'occhiata da solo, ma sono sul mio telefono proprio ora. –
In altre parole esattamente il comportamento che stai vivendo. L'unica vera caratteristica della classe Compat è che puoi usarli senza doversi preoccupare della compatibilità. Tutto ciò che accade se qualcosa non è supportato non è nulla. Che, naturalmente, non può essere detto per la cosa reale. –
Questo non è ciò che è richiesto qui però. DrawableCompat è specificamente detto per portare la tinta ai livelli API 4 e successivi. https://chris.banes.me/2015/04/22/support-libraries-v22-1-0/ –