参考my previous question,我需要一些帮助,使listview项目能够响应所有平台,所有尺寸以及横向和纵向模式。我现在的清单视图在10"屏幕。我想让它响应。有没有提到这个呢?
答案 0 :(得分:0)
如果您的ListView
很小并且没有覆盖整个页面,那么您可能会遇到某种固定宽度问题?
在mainList
上设置ContentPage
而没有任何布局选项。
首先尝试设置外部元素的HorizontalOptions
和VerticalOptions
,一旦完成,请关注内部控件以确保它们之后占用所需的空间量。
o.HorizontalOptions = LayoutOptions.FillAndExpand;
o.VerticalOptions = LayoutOptions.FillAndExpand;
将ListView
BackgroundColor
更改为一些明显的颜色,以帮助您确保正确布局。
答案 1 :(得分:0)
每个Xamarin.Forms.Element(以及每个页面)都实现了Width和Height属性,您可以根据页面大小使用这些属性来调整布局。 您应该在此页面上获取有关VisualElement类https://developer.xamarin.com/api/type/Xamarin.Forms.VisualElement/
的战利品您还可以使用Device.Idiom来检查您是在手机还是平板电脑上并单独处理每个案例:
if (Device.Idiom == TargetIdiom.Phone)
//your code goes here
else
if (Device.Idiom == TargetIdiom.Tablet)
//your code goes here
else
throw new PlatformNotSupportedException();
对于landscape / protrait,只需检查页面的宽度/高度属性:
if (Width > Height)
{
//"landscape"
}
else
{
//"portrait"
}
为了处理Orientation更改,请实现SizeChanged的事件处理程序,或者只是覆盖OnSizeAllocated(https://developer.xamarin.com/api/member/Xamarin.Forms.VisualElement.OnSizeAllocated/p/System.Double/System.Double/)