2017-11-13 16 views
1

私のContentViewをロードするときに表示される「ローダー」を作成したいとします。 YouTubeアプリケーションでこのようXamarinフォーム - ロードページのベストプラクティス

:私はタブボタンをクリックしたときに

enter image description here

あなたが見ることができるように、ローダーが表示されます。

しかし、Xamarin.Formsでは、ContentViewはローダーを非表示にしていないため、ContentViewはそれを行う方法がわかりません。 (そして私のローダーは私のContentViewと同時に表示されるからです)。 ボタンをクリックすると、約200msの間にアプリが「フリーズ」する...ユーザーエクスペリエンスには不向き...

これは私のコンテンツを表示するためのベストプラクティスですか?

<AbsoluteLayout> 
    <Grid ... IsVisible="{Binding IsBusy, Converter={StaticResource InvertBooleanConverter}}"> ... </Grid> 
    <Image ... IsVisible="{Binding IsBusy}" /> 
</AbsoluteLayout> 

あなたのViewModelにIsBusyというプロパティを作成しますので、は次のようにあなたは、あなたのXAMLでの絶対的なレイアウト内のローディング画像及びグリッド(またはものは何でもあなたが必要とする)を追加することができます

おかげ

+0

をそれをチェックアウトページ上のローダインジケーターを追加します。ページが読み込まれているときに実行する必要があります。タスクのページコンテンツを読み込むためのバックグラウンドプロセスを開始します。コンテンツがロードされると、タスクが終了し、ローダーを停止してコンテンツをロードします(非表示にすることができます)。タスクが終了したらUIスレッドを実行してください。 –

+0

@YuriSこんにちは、ありがとうございます。しかし、ビューを使って "コンテンツが読み込まれる"ようにするにはどうすればいいですか?私の他の質問を確認してください:https://stackoverflow.com/questions/47266871/navigation-with-bottom-bar-customisation – Naografix

+0

私は別の質問が正確にどのように関係しているか分かりません。私はあなたが答えるために読み込んでいるコンテンツについてもっと知る必要があります。通常、コンポーネントにはイベントが表示されているか、呼び出しがブロックされているかのいずれかのイベントがあります。そのため、タスクに入っている場合、コンテンツが読み込まれるとタスクが終了します。あなたは使用することができます –

答えて

1

次のようになります。

bool _isBusy = true; 
public bool IsBusy 
{ 
    get 
    { 
     return _isBusy; 
    } 
    set 
    { 
     _isBusy = value; 
     OnPropertyChanged(nameof(IsBusy)); 
    } 
} 

次に、データが完全に読み込まれたときに、ViewModelでIsBusyをfalseに設定します。これにより、データが読み込まれるまでImageが表示され、グリッドがデータでいっぱいになってしまいます。

あなたはそのようInvertBooleanConverterコンバータを作成する必要があります:

public class InvertBooleanConverter : IValueConverter 
    { 
     public object Convert (object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      return !(bool)value; 
     } 
     public object ConvertBack (object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      return !(bool)value; 
     } 
    } 
関連する問題