C# Xamarin.forms中的响应网格

C# Xamarin.forms中的响应网格,c#,android,ios,windows-phone,xamarin.forms,C#,Android,Ios,Windows Phone,Xamarin.forms,关于,我需要一些帮助,使listview项目在所有平台、所有尺寸以及横向和纵向模式下都能响应。我现在看到的listview在一个10英寸的屏幕上变得很小。我想让它具有响应性。有什么参考来实现这一点吗?如果你的listview很小并且没有覆盖整个页面,听起来你有一些固定宽度的问题 在您的main列表中设置为ContentPage,不带任何布局选项 首先尝试设置外部元素的水平选项和垂直选项,一旦开始工作,请关注内部控件,以确保它们占用所需的空间 o.HorizontalOptions

关于,我需要一些帮助,使listview项目在所有平台、所有尺寸以及横向和纵向模式下都能响应。我现在看到的listview在一个10英寸的屏幕上变得很小。我想让它具有响应性。有什么参考来实现这一点吗?

如果你的
listview
很小并且没有覆盖整个页面,听起来你有一些固定宽度的问题

在您的
main列表中
设置为
ContentPage
,不带任何布局选项

首先尝试设置外部元素的
水平选项
垂直选项
,一旦开始工作,请关注内部控件,以确保它们占用所需的空间

        o.HorizontalOptions = LayoutOptions.FillAndExpand;
        o.VerticalOptions = LayoutOptions.FillAndExpand;

列表视图
背景色
更改为一些明显的颜色,以帮助您确保布局正确。

每个Xamarin.Forms.Element(以及每个页面)都实现了宽度和高度属性,您可以使用它们根据页面大小调整布局。 您应该在本页了解有关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();
对于横向/纵向,只需检查页面的宽度/高度属性:

        if (Width > Height)
        {
            //"landscape"
        }
        else
        {
            //"portrait"
        }

为了处理方向更改,请为SizeChanged实现一个事件处理程序,或者简单地覆盖OnSizeAllocated()

如果您在更改背景颜色方面仍然需要帮助,请删除最后一个问题并发布另一个问题,因为您应该在每篇文章中只问一个问题。@Pete好的,我会这样做,listview覆盖了整个页面。但问题在于行的大小和字体大小。与Toolbar Items相比,listview文本和整个高度是sm你能发送过来吗?我会快速查看一下?它很可能仍然与您内部子项/列表视图项的水平选项和垂直选项有关。