Xamarin表单,将listview放在选项卡页面的相对或绝对布局中

Xamarin表单,将listview放在选项卡页面的相对或绝对布局中,listview,xamarin,xamarin.forms,Listview,Xamarin,Xamarin.forms,我在我的应用程序中有一个设置,我使用一个选项卡式页面,其中我有一个带有listView的页面。 为了显示ActivityIndicator,我使用将listView放在AbsoluteLayout中的方法。 然而,这有一个悲哀的结果,我的listview中的最后一个项目是够不着的。我无法正确地滚动到它们。 我认为这与绝对布局的大小有关,但我不能把它做好 是否有另一种获取活动指标的解决方案,或者可以进行纠正?我应该使用相对布局吗 我没有设置Content属性,而是使用以下方法: protected

我在我的应用程序中有一个设置,我使用一个选项卡式页面,其中我有一个带有listView的页面。 为了显示ActivityIndicator,我使用将listView放在AbsoluteLayout中的方法。 然而,这有一个悲哀的结果,我的listview中的最后一个项目是够不着的。我无法正确地滚动到它们。 我认为这与绝对布局的大小有关,但我不能把它做好

是否有另一种获取活动指标的解决方案,或者可以进行纠正?我应该使用相对布局吗

我没有设置Content属性,而是使用以下方法:

protected void SetContent (View content)
    {
        var overlay = new AbsoluteLayout ();
        loadingIndicator = new ActivityIndicator {
            HorizontalOptions = LayoutOptions.CenterAndExpand,
            VerticalOptions = LayoutOptions.Start,
            Scale = 2,
            Color = Color.Silver
        };
        AbsoluteLayout.SetLayoutFlags (content, AbsoluteLayoutFlags.PositionProportional);
        AbsoluteLayout.SetLayoutBounds (content, new Rectangle (0f, 0f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));
        AbsoluteLayout.SetLayoutFlags (loadingIndicator, AbsoluteLayoutFlags.PositionProportional);
        AbsoluteLayout.SetLayoutBounds (loadingIndicator, new Rectangle (0.5, 0.5, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));
        overlay.Children.Add (content);
        overlay.Children.Add (loadingIndicator);
        Content = overlay;
    }
在选项卡页内的“我的页面”


请帮忙

您也可以尝试使用
网格
控件。无论何时在同一行中设置两个元素,它们都将正确地相互重叠。因此,基本上,您会有一行或多行包含所有页面内容,然后在页面底部定义
ActivityIndicator
,并将其设置为第0行。根据行数的不同,您需要将
行间距
设置为1以外的值,以便覆盖整个页面

通过这样做,您可以确保
ActivityIndicator
位于所有控件的顶部(XAML底部的控件在运行时位于顶部)。显然,同样的方法也适用于代码隐藏。

我建议使用

初始化

iOS和Windows

从v4.x开始,不再需要任何东西。iOS有一个Init函数,但它是可选的,仅当您想要/需要控制时才需要 iOS扩展之类的顶级viewcontroller。不过,进度提示不会使用此出厂功能

Android(在MainActivity.cs中)

using (this.Dialogs.Loading("Test Loading"))
    await Task.Delay(3000);
UserDialogs.Init(this);