我有點卡住了這一點 - 首先,以下鏈接已經很有用,但是我已經想出了一點與可見性有關的問題:確定一個視圖是否在屏幕上 - Android
我有一個滾動視圖(父)和若干子次(LinearLayout
- >TableLayout
)等有許多的我XML(android:visibility="gone"
)內設置爲View.GONE
項目。
我有一些簡單的代碼,以確定它是否是可見或不使用getVisibility()
但是當我設置的項目View.VISIBLE
並立即嘗試getDrawingRect()
我得到一個矩形與全線零。任何進一步的點擊獲得正確的座標。
現在,這可能是因爲視圖從未繪製過(如XML中定義的),導致它不返回座標,但是我在嘗試確定屏幕可見性之前設置了View.VISIBLE
。難道我需要從onDraw()中獲得某種回調嗎?或者在代碼中設置隱藏項的視圖可見性。有點惱人;(
某些代碼:
Rect scrollBounds = new Rect();
scroll.getHitRect(scrollBounds);
Rect viewBounds = new Rect();
if (view.getVisibility() == View.GONE) {
view.setVisibility(View.VISBLE)
viewBounds.getDrawingRect(viewBounds);
if (!Rect.intersects(scrollBounds, viewBounds) {
// do somthing
}
}
佈局面積如下:
ScrollView
LinearLayout
TableLayout
Button
HiddenView
。當然,這是極有可能,我一共要對這個錯誤的方式 - 基本上我只是想確保滾動視圖自己定位,因此可以看到已經變得可見的視圖。
如果需要其他信息,請告訴我!
很酷。如果有幫助,請隨意選擇箭頭/ +1。乾杯。 – OceanLife 2013-04-08 23:23:25
是試圖做到這一點,但我的聲望點不會允許我:( – 2013-04-09 07:35:46