Android(Xamarin)获得高度的视图

时间:2017-06-16 04:59:04

标签: android xamarin layout

如何获得我实施的网格视图的高度?简单地调用gridview.Height会返回0,因为在我调用它时没有绘制网格,因此在浏览后我了解到我必须实现一个视图树观察器。我确实成功地获得了高度,但由于无法停止视图树观察者并检索高度,我无法使用它。我还发现this thread,但尚未解决。

这是我的代码:

//  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 个答案:

答案 0 :(得分:1)

您可以在任何视图中使用Post方法,例如:

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