2017-06-16 21 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

関連する問題