SORU
11 EKİM 2011, Salı


Nasıl bir düzen çizilmiştir.

Ekranda kaydırılan bir bitmap çeken özel bir görünümü var. Bunu başlatmak için, üst düzen nesne piksel olarak boyutunu geçmek istiyorum. Ama onCreate ve onResume işlevleri sırasında, henüz Düzeni ve düzeni çizilmiştir.() getMeasuredHeight 0 değerini döndürür.

Geçici bir çözüm olarak, bir saniye bekleyin ve sonra ölçmek için bir işleyici ekledim. Bu çalışır, ama özensiz, ve ben laout çizilmiş gelmeden önce son kez döşeme nasıl hiçbir fikrim yok.

Bilmek istediğim, nasıl bir düzen çizilmiş olur algılayabilir miyim? Olay ya da bir geri arama var mı?

CEVAP
12 EKİM 2011, ÇARŞAMBA


Düzeni için bir ağaç gözlemci ekleyebilirsiniz. Bu doğru genişlik ve yükseklik dönmelidir. onCreate çocuk görüşlerini düzeni yapılır önce denir. Genişliği ve yüksekliği henüz hesaplanmamış. Yükseklik ve genişlik için onCreate yöntemi bu

final LinearLayout layout = (LinearLayout)findViewById(R.id.YOUR_VIEW_ID);
ViewTreeObserver vto = layout.getViewTreeObserver(); 
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
        this.layout.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
        int width  = layout.getMeasuredWidth();
        int height = layout.getMeasuredHeight(); 

    } 
});

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MyTiredBones

    MyTiredBones

    2 Temmuz 2013
  • Tina Chen

    Tina Chen

    26 Mayıs 2012
  • TitaniumBackup

    TitaniumBack

    10 EYLÜL 2011