Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓(Xamarin)获得高度视角_Android_Xamarin_Layout - Fatal编程技术网

Android 安卓(Xamarin)获得高度视角

Android 安卓(Xamarin)获得高度视角,android,xamarin,layout,Android,Xamarin,Layout,如何获得正在实现的gridview的高度?只需调用gridview.Height返回一个0,因为在我调用它的时候网格还没有被绘制出来,因此在环顾四周之后,我了解到我必须实现一个视图树观察者。我确实成功地获取了高度,但由于无法停止视图树观察者并检索高度,因此无法使用它。我也找到了,但还没有解决 这是我的密码: // Get gridview height ViewTreeObserver vto = gridview.ViewTreeObserver; vto.GlobalLayout += (

如何获得正在实现的gridview的高度?只需调用gridview.Height返回一个0,因为在我调用它的时候网格还没有被绘制出来,因此在环顾四周之后,我了解到我必须实现一个视图树观察者。我确实成功地获取了高度,但由于无法停止视图树观察者并检索高度,因此无法使用它。我也找到了,但还没有解决

这是我的密码:

//  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的高度?非常感谢您的帮助。

您可以在以下任何视图中使用
Post
方法:

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

很高兴这有帮助。