我目前正在使用xamarin开发一个针对Android的问卷调查程序,我正在使用片段来显示问题,因为有不同的问题类型。我需要确保有足够的屏幕空间来解决问题,但不幸的是我似乎无法找到任何有用的东西或找到适用于xamarin的版本。
该程序旨在检查是否有足够的空间来绘制问题,如果有,则提取问题,如果没有则会显示在下一页上。问题是动态绘制的,因此程序在运行时之前不知道是否存在空间。
我设法获得了设备的屏幕大小,但是当我为片段使用类似的代码时,它返回0。
这是我用于设备的代码,它工作正常。
Point size = new Point();
this.WindowManager.DefaultDisplay.GetSize(size);
System.Diagnostics.Debug.WriteLine("Panel " + size.ToString());
答案 0 :(得分:0)
我设法获得了设备的屏幕大小,但是当我为片段使用类似的代码时,它返回0。
您可以像这样在片段中获取片段的大小:
public class MyFragment:Fragment
{
...
public override void OnViewCreated(View view, Bundle savedInstanceState)
{
base.OnViewCreated(view, savedInstanceState);
//add global layout event listener
view.ViewTreeObserver.GlobalLayout += ViewTreeObserver_GlobalLayout;
}
private void ViewTreeObserver_GlobalLayout(object sender, EventArgs e)
{
//get the size of fragment
var width=this.View.Width;
var height = this.View.Height;
}
}