항목 목록이있는 페이지가 있으며 일부 항목이 선택되면 ActivityIndicator가 켜지고 다른 페이지로 이동하여 해제됩니다. 이 새로운 페이지에서 NavigationPage의 BackButton을 클릭하면 항목 목록이있는 페이지로 돌아 오지만 문제는 ActivityIndicator가 켜져 있다는 것입니다 (지속). 어떻게 해결할 수 있습니까?BackButton을 누른 후 ActivityIndicator가 실행 중입니다.
[목록 페이지]
public partial class ResultadosBuscados : ContentPage
{
public ResultadosBuscados(IEnumerable dadosPesquisados)
{
IsBusy = false;
InitializeComponent();
BindingContext = this;
ListaBuscados.ItemsSource = dadosPesquisados;
}
public void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
IsBusy = true;
stackActivity.IsVisible = true;
Envolvido envolvSelec = (Envolvido)e.SelectedItem;
if (envolvSelec == null)
return;
IsBusy = false;
stackActivity.IsVisible = false;
this.Navigation.PushAsync(new EnvolvidoDetalhe(envolvSelec));
this.ListaBuscados.SelectedItem = null;
}
}
[XAML 코드의 일부]
<StackLayout x:Name="stackActivity" IsVisible="False" Padding="12"
AbsoluteLayout.LayoutFlags="PositionProportional"
AbsoluteLayout.LayoutBounds="0.5,0.5,-1,-1">
<Frame Padding="50" OutlineColor="Black" HasShadow="true" AbsoluteLayout.LayoutFlags="PositionProportional" Opacity="0.8" BackgroundColor="Black" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand">
<StackLayout>
<ActivityIndicator IsRunning="{Binding IsBusy}" Color ="#F4B400"/>
<Label Text="Aguarde..." TextColor="#F4B400"/>
</StackLayout>
</Frame>
</StackLayout>
이 가능하면 그 'EnvolvidoDetalhe' 페이지 어딘가에 또는 ViewModel에'IsBusy = true;'를 설정하고 사용자가 뒤로 버튼을 누르기 전에 다시 false로 설정하지 않습니까? 나는 EnvvidoDetalhe.OnDisappearing()에서'IsBusy = false;'를 설정하거나'ResultadosBuscados.OnAppearing()'의 맨 위에서 행하도록 제안 할 것이다. 그게 고칠 수 있니? 그렇다면'IsBusy'를'true'로 설정하고'false'로 다시 설정하지 마십시오. – hvaughan3
@ hvaughan3 defult가 false입니다! ListView와 OnItemSelected를 사용하지 않는 다른 페이지에서는 멋지게 작동합니다! 나는 정상적으로 앞뒤로 갈 수있다. OnItemSelected에있을 때 문제가 발생합니다! BackButton을 클릭 한 후 디버깅을 시도했지만 ResultadosBuscados 페이지는 isbusy = false를 기본값으로 가정합니다. –
페이지를 바꿀 때'IsBusy'가 재설정되는지,'IsBusy'가 어떤 페이지로 가도 상관없이 같은 값을 유지하는지 확신 할 수 없습니다. ResultadosBuscados.OnAppearing()에서'IsBusy'를'false'로 설정하려고 했습니까? 실제로'IsBusy' 주석을 읽는 중, "여러 페이지에서 한번에 IsBusy를 true로 설정하면 둘 다 false로 설정 될 때까지 전역 활동 표시기가 실행됩니다. 정리하기 전에 IsBusy 플래그를 설정 해제하는 것은 작성자 작업입니다 위로 페이지. " – hvaughan3