如何获得我实施的网格视图的高度?简单地调用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的高度?非常感谢任何帮助。
答案 0 :(得分:1)
您可以在任何视图中使用Post
方法,例如:
int height = 0;
gridview.Post(() =>
{
height = grid.Height;
});