2017-06-16 80 views
2

如何獲取我正在實現的gridview的高度?只需調用gridview.Height就會返回一個0,因爲在我調用它的時候網格還沒有被繪製,因此在四處觀察之後,我得知我必須實現一個視圖樹觀察者。我設法成功地獲得了高度,但是我無法使用它,因爲無法停止視圖樹觀察者並檢索高度。我也發現了this thread,但它沒有解決。Android(Xamarin)獲取視圖高度

這裏是我的代碼:

// Get gridview height 
ViewTreeObserver vto = gridview.ViewTreeObserver; 
vto.GlobalLayout += (sender, args) => 
{ 
    if (GRID_HEIGHT > 0) 
    { 
     GRID_HEIGHT = gridview.Height; 

     // Configure gridview    
     gridview.Adapter = new CustomAdapter(this); 

     return; 
    } 
}; 

當執行的代碼,它只是循環永遠上。我怎樣才能退出循環,或者有另一種方法來獲得gridview的高度?任何幫助是極大的讚賞。

回答

1

可以使用Post方法在任何視圖,如:

int height = 0; 
gridview.Post(() => 
{ 
    height = grid.Height;   
}); 
+0

這工作,謝謝! – Ryalis

+0

很高興幫助。 – jzeferino