2015-08-13 18 views
8

Uygulamam birden çok görünüm (kaydırılabilir) içeriyor, bunlardan biri CustomView (Görünüm'ü genişletiyor), bu Görünüm görünür alana geldiğinde ateşlenen herhangi bir android olayı var mı.Android Görünümü Uygulama içinde görünür hale geldiğinde herhangi bir olay var mı?

Bu iplik görünümünde herhangi bölümünün ekranda görünür ama bu döndürme kilidi yaklaşım olup olmadığını kontrol etmek customView.getGlobalVisibleRect(rectangle) kullanacak onAttachedToWindow ait zaman dilimi içinde arka plan iş parçacığı kullanarak olsa onDetachedToWindow i yaklaşım, daha iyi bir yolu var mı

final View viewTemp = convertView; 

convertView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     int rowHeight = viewTemp.getGlobalVisibleRect(); 
     ... 
    } 

Notlar: Ben burada getGlobalVisibleRect

+0

bkz. 'ViewTreeObserver' – pskink

+1

OnVisibilityChanged()' ı denediniz mi? Tam görünümün görünür olup olmadığını belirlemek için, kontrol mantığınızı özel görünümünüzdeki overridden 'onVisibilityChanged()' yöntemine koyun. – initramfs

+0

Görüntülemede veya görüntülemenin görünürlüğü kullanıcı tarafından VISIBLE olarak ayarlanmış mı? – skywall

cevap

6

çağırabilir kovuluyor türlü etkinliğe görünürlüğünü algılamak için ViewTreeObserver kullanarak tek örnek kod

  • Kodunuzu bilmiyorum ve gönderilmiyor. viewTemp = convertView kodu sadece bir örnek, bir Adaptör kullanarak koddur.
  • Düzen, birçok nedenden ötürü herhangi bir nedenden dolayı çizildiğinde bu bir dinleyicidir.
+2

teşekkürler cevap için, ben birkaç kapsayacak şekilde, çok addOnWindowAttachListener addOnScrollChangeListener olurdu '(bkz başvurum kütüphane projesi) daha fazla vaka – Pradeep

İlgili konular