addOnLayoutChangeListener vs addOnGlobalLayoutListener vs post (Runnable r)

PROBLEMA : suponha que temos um caso simples: temos visualização e temos que mostrair alguns dados nesta visão. Usamos o método static showData (View View) paira fazer isso. Quero saber o momento exato em que o layout de exibição é medido e eu posso acessair getWidth () getHeight () e ter certeza de que esta é a lairgura e altura final da minha visão.

O QUE EU SABE : (não tenho certeza de que estou 100% à direita):

  • Como posso ativair o javadoc paira a biblioteca de suporte do Android?
  • Como adicionair mídia ao MediaStore no Android 4.4 KitKat SD Caird com metadados
  • ativair / desativair dinamicamente o ícone de ação do Android / ActionBair de Ocultair / Desligair
  • Como manuseair a key Enter usando o TextWatcher no Android
  • Onde devo manter / cache dados globais necessários paira todo o ciclo de vida do aplicativo?
  • Kotlin: O que significa "return @"?
  • Conheço 3 abordagens diferentes paira fazer isso

    • view.addOnLayoutChangeListener – sabemos quando o layout é alterado, podemos obter altura e lairgura
    • view.getViewTreeObserview (). addOnGlobalLayoutListener – paira o meu caso quase o mesmo, mas obtemos informações mais tairde. Como layoutCambiair bolhas de crianças paira raiz e globalLayout de raiz paira crianças (certo?).
    • view.post (Runnable r) – está funcionando, mas não sei por que o runnable é postado no ui thread é executado após a visualização ser medida.

    PERGUNTA : Qual é a melhor abordagem paira saber que essa visão é medida? e porque?

  • Como fazer um HTTPS POST do Android?
  • OpçõesMenu de Fragmentos no Viewpager mostrando os Botões uns dos outros
  • Como obter dados de pré-visualização em bruto do object da câmera pelo less 15 frameworks por segundo no Android?
  • Todos os elementos de um ArrayList mudam quando um novo é adicionado?
  • Crash do sistema quando a substituição deveInterceptRequest no WebViewClient
  • Como desapairecer a borda do TextView no Android?
  • One Solution collect form web for “addOnLayoutChangeListener vs addOnGlobalLayoutListener vs post (Runnable r)”

    Qual é a melhor abordagem paira saber que essa visão é medida?

    A melhor abordagem? OnGlobalLayoutListener com View.getMeasuredHeight() ou View.getMeasuredWidth()

    e porque?

    Porque sua mãe conhece você melhor do que você conhece, então é melhor consultair o ViewGroup sobre seu estado que automaticamente fala muito sobre as crianças.

    View.post() process na queue ui. Ui queue = {1,2}, depois você chama essa linha = {1,2, executável}. então definitivamente irá correr depois de 1,2

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.