onFinishInflate() n'est jamais appelée
De qui/de Quoi appels onFinishInflate()? Peu importe comment je le gonfler mes fichiers de mise en page (dans le code), cette méthode ne semble jamais se déclencher. Quelqu'un peut-il me donner un exemple ou me dire quand onFinishInflate() en fait être appelé?
Vous devez vous connecter pour publier un commentaire.
View.onFinishInflate()
est appelée après la vue (et ses enfants) est gonflé à partir de XML. Plus précisément, c'est lors d'un appel deLayoutInflater.inflate(...)
queonFinishInflate()
sera appelée. L'Inflation est récursive, à partir de la racine. Une vue contenant les enfants peuvent avoir besoin de savoir quand ses enfants ont fini d'être gonflé. L'une des utilisations principales de ce rappel est pourViewGroups
à effectuer des actions spéciales une fois que ses enfants sont prêts.Supposons que vous avait une sous-classe de
View
appeléCustomView
, et qu'il n'a pas en interne gonfler toutes les mises en page elle-même. Si vous avez eu uneCustomView
quelque part dans votre mise en page, c'est à dire :Vous devriez voir un rappel à
onFinishInflate()
une fois qu'il a été gonflé. Si c'est dans votre page principale de votre activité, alors vous pouvez envisager cet après -Activity.setContentView(int)
est appelé. En interne, ce qui appelleLayoutInflater.inflate(...)
.Alternativement, si vous avez créé une instance de
CustomView
avec:...vous n'obtiendrez pas un appel à
onFinishInflate()
. Instanciation de cette manière, naturellement dire qu'elle n'a pas d'enfants et donc de ne pas avoir à attendre pour eux d'être instancié dans le récursive de la mode, comme dans le XML de l'inflation.android.view
ne fonctionne pas.super.onFinishInflate
ou votre substituéeonFinishInflate
dans le constructeur.onFinishInflate()
.