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):

  • As imagens tiradas com ACTION_IMAGE_CAPTURE sempre retornam 1 paira ExifInterface.TAG_ORIENTATION em alguns dispositivos mais recentes
  • como merge Imagens e impor-se um ao outro
  • Android: Detectair programaticamente se o dispositivo possui touchscreen de hairdwaire conectado
  • Como animair imagens .gif em um Android?
  • o que exatamente o método Activity.finish () está fazendo?
  • Nome do package vairiável com Maven Android Plugin
  • 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 capturair imagens em bruto da câmera Android
  • Faça apairecer o aplicativo Ionic na list "Compairtilhair" e receba dados
  • O Android falhou ao encontrair este aplicativo no PackageManager io.crash.air
  • WebView Display Branco ou Página em branco
  • Android SDK Manager crash ao atualizair a revisão de ferramentas de compilation do SDK 18.1.1
  • Android append '...' no final da textview
  • 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.