2014-04-23 8 views
6

Mam Scrollview zdefiniowane następująco:Scrollview: sprawdzić, czy widok jest widoczny na ekranie lub nie

<ScrollView 
    ... 
    .../> 
    <LinearLayout 
     ... 
     ...> 

     <!-- content --> 

    </LinearLayout> 
</ScrollView> 

I wypełnić LinearLayout dynamicznie z niektórych ImageViews. Czy istnieje sposób sprawdzenia, czy obraz jest widoczny lub niewidoczny (na przykład, kiedy przewijam w dół)?

+2

Sprawdź tę odpowiedź: [http://stackoverflow.com/a/12428208/798634](http://stackoverflow.com/a/12428208/798634) –

+0

Ten post może pomóc [http://stackoverflow.com/questions/4628800/android-how-to-check-if-a-view-inside-of-scrollview-is-visible][1] [1] : http://stackoverflow.com/questions/4628800/android-how-to-check-if-a-view-inside-of-scrollview-is-visible –

+0

Sprawdź tę odpowiedź https://stackoverflow.com/questions/4628800/android-how-to-check-if-a-view-inside-of-scrollview-is-visible/47280300 # 47280300 – Himanshu

Odpowiedz

10

Aby sprawdzić, czy widok jest całkowicie/częściowo widoczne można użyć:

boolean isViewVisible = view.isShown(); 

Aby ustalić, czy jest ona w pełni widoczna użycie poniżej podejścia:

Rect rect = new Rect(); 
if(view.getGlobalVisibleRect(rect) 
    && view.getHeight() == rect.height() 
    && view.getWidth() == rect.width()) { 
    // view is fully visible on screen 
} 
0

będę przekazania Państwu to this answer:

Jeśli zdjęcie jest częścią layoutu, może to być "View.VISIBLE", ale to nie znaczy, że znajduje się w granicach widocznego ekranu. Jeśli tego właśnie szukasz; to będzie działać:

Rect scrollBounds = new Rect(); 
scrollView.getHitRect(scrollBounds); 
if (imageView.getLocalVisibleRect(scrollBounds)) { 
    // imageView is within the visible window 
} else { 
    // imageView is not within the visible window 
} 
Powiązane problemy