【发布时间】:2017-10-13 15:37:04
【问题描述】:
我有以下代码,但它不能正常工作。
<AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" >
<StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="0,0,1,1">
<ScrollView VerticalOptions="FillAndExpand">
<StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" x:Name="webViewLayout">
<WebView x:Name="webcontentcontrol" Source="{Binding WebViewSource}" VerticalOptions="FillAndExpand" HorizontalOptions="Fill"></WebView>
</StackLayout>
</ScrollView>
</StackLayout>
<StackLayout IsVisible="{Binding IsBusy}"
AbsoluteLayout.LayoutFlags="PositionProportional"
AbsoluteLayout.LayoutBounds="0.5,0.5,-1,-1">
<ActivityIndicator IsRunning="{Binding IsBusy}" Style="{StaticResource ActivityIndicatorStyle}"/>
<Label Text="Loading..." IsVisible="{Binding IsBusy}" HorizontalOptions="Center" Style="{StaticResource ActivityIndicatorLabelStyle}"/>
</StackLayout>
</AbsoluteLayout>
cs文件代码是
public AnnouncementPage()
{
InitializeComponent();
BindWebViewControl();
}
protected override void OnAppearing()
{
webViewLayout.IsVisible = false;
IsBusy= true;
}
private async void BindWebViewControl()
{
var result = await _dataService.GetAnnouncement();
webcontentcontrol.Source = result.Data.First().WebViewSource;
IsBusy = false;
webViewLayout.IsVisible = true;
}
问题是标签“正在加载...”没有隐藏,并且活动指示器没有显示在屏幕上。
【问题讨论】:
-
你使用的是INotifyPropertyChanged接口吗?
-
是的,我已经实现了
-
如果您使用绑定上下文视图模型,那么您需要在视图模型中声明您的 isBusy 变量并在 xaml.cs 中设置 Viewmodel.isBusy 但您也可以通过简单的方式查看我的答案。
标签: c# xamarin.forms