2014-10-31 12 views
9

Nell'API 21, è possibile utilizzare colorAccent per modificare il colore di widget come EditText, RadioButton ecc. Ma non si applica alle sottoclassi di tali widget. Ho provato this ma è proprio come colorAccent, si applica solo ai widget originali.Progettazione materiale per sottoclasse di EditText

C'è qualche soluzione a questo? oltre a dover creare un drawable personalizzato, lo implementa come stile ..

+2

Cosa intendi per "sottoclasse di EditText"? Stai dicendo che se estendi EditText allora colorAccent non si applica? – Squonk

+0

@Squonk yup..ho creato un EditText personalizzato estendendo l'EditText originale, ma colorAccent non si applica al mio EditText personalizzato. –

risposta

11

In realtà a partire dal supporto Android 22.1 si dovrebbe creare una sottoclasse AppCompatEditText.

+0

Questa soluzione si blocca su Marshmallow. – AndroidDev

+0

No, no, forse stai facendo qualcosa di diverso. – Jessicardo

0

Poiché, non hai pubblicato alcun codice sorgente, suppongo che non stia gonfiando la vista da un layout XML, ma che si chiami il nuovo MyCustomEditText.

Come il sito degli sviluppatori ha dichiarato: Il tema del tema del design può essere applicato solo quando si caricano le viste utilizzando un inflattore di layout.

Questo perché il nuovo backport di design del materiale si aggancia al processo di gonfiaggio del layout.

Un'altra ragione potrebbe essere il fatto che la libreria appcompat v7 carichi solo la progettazione del materiale quando trova un EditText nel layout XML. E non riconosce i componenti della vista personalizzata.

Google prevede di rilasciare i widget backport del materiale al pubblico, hanno dichiarato che questi sono attualmente ancora in fase di sviluppo. Potresti voler sostituire questi speciali widget del backport che potrebbero eventualmente risolvere il tuo problema. Ma dal momento che non sono ancora pubblici ... non puoi.

+0

Ho chiamato la mia visualizzazione personalizzata tramite xml e lo ho gonfiato tramite onCreateView..so suppongo di dover aspettare poi? –

12

Per l'applicazione colorAccent basta estendere la classe EditText personalizzato da android.support.v7.widget.AppCompatEditText

+0

wow, non sapevo che ... grazie mille .. –

+1

@DarkLeonhart questa classe è per uso interno della libreria di supporto, ma non conosco un altro modo – AndrOvip

Problemi correlati