Intereting Posts
String.xml Несколько подстановок, указанных при использовании%, следуют по строке два раза Загрузите плотность для уровня API <15 Кэширование в веб-браузере Android Android: как поставить вопросительный знак в строковый ресурс? Где хранить ключи предпочтений Android? Как играть в mp3 + g на mediaplayer android Как безопасный вход в мое приложение для Android с использованием facebook-id? Как сделать приложение Facebook новым приложением на Android? Как проверить код, который загорается светодиодами устройства Android? Совместное использование общих файловых дескрипторов файлов в приложении и процессах Android с использованием связующего Кордова для андроида: произошла ошибка при прослушивании целей Android Сделать мой запуск приложения при вводе секретного кода? Должен ли я объявлять разрешение «com.android.alarm.permission.SET_ALARM» при использовании Alarm Manager в Android? Когда фрагмент потерял фокус, а затем восстановил фокус, почему его метод onResume () никогда не вызывается в этот период? Как написать изогнутый текст?

OnFinishInflate () никогда не вызывается

Кто / Что вызывает onFinishInflate ()? Независимо от того, как я раздуваю файлы макета (в коде), этот метод никогда не запускается. Может ли кто-нибудь дать мне пример или сказать мне, когда onFinishInflate () действительно вызван?

View.onFinishInflate() вызывается после того, как представление (и его дочерние View.onFinishInflate() завышено от XML. В частности, во время вызова LayoutInflater.inflate(...) , onFinishInflate() будет вызываться onFinishInflate() . Инфляция выполняется рекурсивно, начиная с корня. Взгляд, содержащий детей, возможно, должен знать, когда его дети закончили быть раздутыми. Одним из основных видов использования этого обратного вызова является просмотр, когда ViewGroups выполняют специальные действия, когда его дети готовы.

Предположим, у вас есть подкласс View называемый CustomView , и что он не CustomView внутренние макеты сами по себе. Если у вас был CustomView где-то в вашем макете, то есть:

 ... <com.company.CustomView android:layout_width="wrap_content" android:layout_height="wrap_content" /> ... 

Вы должны увидеть обратный вызов onFinishInflate() после его раздувания. Если это в вашем основном макете вашей деятельности, вы можете рассмотреть это после того, как вызывается Activity.setContentView(int) . Внутри это вызовет LayoutInflater.inflate(...) .

Кроме того, если вы создали экземпляр CustomView с:

 ... new CustomView(context); ... 

… вы не получите звонок onFinishInflate() . Таким образом, создание его таким образом, естественно, означает, что у него нет детей, и, следовательно, ему не нужно ждать, пока они будут воспроизведены рекурсивно, как в XML-инфляции.