2014-04-23 154 views
6

我有一個滾動型等被定義:滾動型:檢查是否視圖是在屏幕上可見或不可見

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

     <!-- content --> 

    </LinearLayout> 
</ScrollView> 

我填寫的LinearLayout動態與一些ImageViews。現在,有沒有辦法來檢查ImageView何時可見或不可見(例如,當我向下滾動)?

+2

退房這樣的回答:[http://stackoverflow.com/a/12428208/798634](http://stackoverflow.com/a/12428208/798634) –

+0

此信息可能幫助:[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

檢查這個答案 https://stackoverflow.com/questions/4628800/Android的如何做 - 檢查 - 如果-A-視圖內 - 的 - 滾動視圖,是可見/ 47280300#47280300 – Himanshu

回答

10

要檢查的觀點是完全/部分可見,你可以使用:

boolean isViewVisible = view.isShown(); 

以確定它是否是下面的方法完全可見的使用:

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

我會把你to this answer

如果圖像是佈局的一部分,它可能是「View.VISIBLE」,但這並不意味着它在可見屏幕的範圍內。如果這就是你的追求;這將工作:

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 
} 
相關問題