使用C#创建活动指示器

时间:2018-03-05 03:57:35

标签: c# xaml xamarin.forms cross-platform

是否可以在不使用XAML的情况下创建活动指示器?我已经准备好了.cs中的视图,我不想重新创建它。

1 个答案:

答案 0 :(得分:1)

您也可以通过代码创建可以通过XAML创建的每个控件。请参阅以下示例

class MyView : ContentView
{
    AbsoluteLayout _layout;
    ActivityIndicator _activityIndicator;

    void InitializeControls()
    {
        _layout = new AbsoluteLayout();
        this.Content = _layout;

        // ...

        _activityIndicator = new ActivityIndicator();
        AbsoluteLayout.SetLayoutFlags(_activityIndicator, AbsoluteLayoutFlags.PositionProportional);
        AbsoluteLayout.SetLayoutBounds(_activityIndicator, new Rectangle(.5,.5,-1,-1));
        _layout.Children.Add(_activityIndicator);
    }

    async void UpdateData()
    {
        _activityIndicator.IsRunning = true;
        this.Data = GetData();
        _activityIndicator.IsRunning = false;
    }
}

InitializeControls中,我们首先初始化一个布局(在这种情况下为AbsoluteLayout),然后创建一个新的ActivityIndicator。我们正在使用AbsoluteLayout.LayoutFlags方法设置AbsoluteLayout.LayoutBoundsAbsoluteLayout.Set...(这些是附加属性的设置者,请参阅here)。最后,我们将ActivityIndicator添加到AbsoluteLayout

UpdateData方法是一种简化方法,用于说明在更新视图数据时如何使用ActivityIndicator。我们首先在IsRunning上设置ActivityIndicator以显示它,然后获取数据并最后取消设置IsRunning以隐藏“活动