O código-fonte do Android para ProgressBar.java não faz sentido
-
28-10-2019 - |
Pergunta
Estou revisando o código-fonte ProgressBar.java do SDK do Android.Na linha 191 de android.widget.ProgressBar afirma:
mMinHeight = a.getDimensionPixelSize(R.styleable.ProgressBar_minHeight, mMinHeight));
Por que está usando mMinHeight na lista de parâmetros ao mesmo tempo como está inicializando?Alguém pode esclarecer isso?O código-fonte completo pode ser localizado aqui em código grep.
Solução
Veja na linha 171 onde chama initProgressBar
?Esse método inicializa mMinHeight com o valor de 24. Em seguida, a chamada para getDimensionPixelSize
usa isso como o valor padrão.
Outras dicas
O segundo parâmetro é apenas um valor padrão que deve ser retornado se getDimensionPixelSize
não consegue encontrar o valor solicitado.É comum (embora um pouco estranho) passar a variável que você está tentando definir como valor padrão.Efetivamente, este código diz "defina este valor se tiver, ou apenas deixe a variável como está, se não tiver".