Codice sorgente Android per BRESTBAR.JAVA non ha senso
-
28-10-2019 - |
Domanda
Sto esaminando il codice sorgente ProgressBar.java dall'SDK di Android.Sulla riga 191 di android.widget.ProgressBar si afferma:
mMinHeight = a.getDimensionPixelSize(R.styleable.ProgressBar_minHeight, mMinHeight));
Perché utilizza mMinHeight nell'elenco dei parametri contemporaneamente durante l'inizializzazione?Qualcuno può far luce su questo?Il codice sorgente completo può essere trovato qui su grepcode .
Soluzione
Vedi sulla riga 171 dove chiama initProgressBar
?Questo metodo inizializza mMinHeight al valore di 24. Quindi la chiamata a getDimensionPixelSize
lo utilizza come valore predefinito.
Altri suggerimenti
Il secondo parametro è solo un valore predefinito che dovrebbe essere restituito se getDimensionPixelSize
non è in grado di trovare il valore richiesto.È comune (anche se leggermente strano) passare la variabile che stai tentando di impostare come valore predefinito.In effetti, questo codice dice "imposta questo valore se lo hai, o lascia la variabile così com'è se non lo hai".