2014-04-23 23 views
6

Tôi đã một scrollview được xác định như sau:scrollview: kiểm tra xem một cái nhìn có thể nhìn thấy trên màn hình hay không

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

     <!-- content --> 

    </LinearLayout> 
</ScrollView> 

Và tôi điền vào LinearLayout động với một số ImageViews. Bây giờ, có cách nào để kiểm tra khi một ImageView được nhìn thấy hoặc vô hình (ví dụ khi tôi di chuyển xuống)?

+2

Kiểm tra câu trả lời này: [http://stackoverflow.com/a/12428208/798634](http://stackoverflow.com/a/12428208/798634) –

+0

bài này có thể giúp : [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

Kiểm tra câu trả lời này https://stackoverflow.com/questions/4628800/android-how-to-check-if-a-view-trong-of-scrollview-hiển thị/47280300 # 47280300 – Himanshu

Trả lời

10

Để kiểm tra xem xem là đầy đủ/một phần có thể nhìn thấy bạn có thể sử dụng:

boolean isViewVisible = view.isShown(); 

Để xác định xem nó là sử dụng hoàn toàn có thể nhìn thấy bên dưới cách tiếp cận:

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

tôi sẽ chuyển tiếp bạn to this answer:

Nếu hình ảnh là một phần của bố cục, nó có thể là "View.VISIBLE" nhưng điều đó không có nghĩa là nó nằm trong giới hạn của màn hình hiển thị. Nếu đó là những gì bạn đang theo sau; điều này sẽ làm việc:

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 
} 
Các vấn đề liên quan