2017-09-23 4 views
1

文脈Exrinでビジービジー/ワーキングインジケータを実装する方法は?

私は段階的なExrinインフラストラクチャを発見しています。私はバックグラウンドでコマンド実行を実装するために多くのインフラ要素を使用する準備ができていることを検討しました。私はIsBusyDelay、VisualState.IsBusy、Timeoutメッセージなどを参照しています.ExrinはXamarin.Formsに依存しないことも知っていますので、実際の視覚的な実装はExrinによって提供されるべきではありません。 (これはクールで、私はUIの経験を決定させてください)

私の設定はIsBusyDelay = 1000;です。バックグラウンドタスクは、私は今、私が自動的に呼び出されますどこかハンドラ(複数可)または無効(複数可)を実装し、表示するために、いくつかの視覚的なUXを実現するために持っているとExecution.ViewModelExecute(... my task here ..., currently 5000msec delay)

質問

によって開始され、忙しい/進んでいないUXのフィードバックを隠す。私はちょうどどことどのように...か分からない。

答えて

1

これはあなたがビューに自分自身を実装するものです。たとえば、画面全体をカバーするものをローディングインジケータで表示したい場合は、これをUIに追加します。

<Grid HorizontalOptions="FillAndExpand" 
     IsVisible="{Binding VisualState.IsBusy}" 
     BackgroundColor="#E6272C30" 
     VerticalOptions="FillAndExpand"> 
    <Grid HorizontalOptions="Center" VerticalOptions="CenterAndExpand" 
      Height="200"> 
     <ActivityIndicator Grid.Row="0"      
         IsRunning="{Binding VisualState.IsBusy}" 
         IsVisible="{Binding VisualState.IsBusy}"> 
      <ActivityIndicator.Scale> 
       <OnPlatform x:TypeArguments="x:Double" Android="1" iOS="1.3" /> 
      </ActivityIndicator.Scale> 
     </ActivityIndicator> 
    </Grid> 
</Grid> 

これは、ページの下部、既存のグリッド内に追加します。

次に、IsBusyがトリガされている場合は、これをオーバーレイとしてアクティビティインジケータとともに示します。

もちろん、それを行う方法は1つだけです。ちょうどクリックされたボタンの隣に、またはその中にactivityindicatorを置くことができます。すべてUIデザインに依存します。

+0

アダム、詳細な回答をいただきありがとうございます。私は自分自身ではなく実装を書くことを期待していませんでした:-)。チェーン内の唯一の欠けているリンクは、私が気づいていなかったことです.IsBusyに(何か)バインドする必要があるということです。 –

+0

はい、Exrinは特定のライブラリと統合しないというアプローチをとるため、UI要素を実装することはできません。それはあなたが自分でこれらのものを実装しなければならないという背中がありますが、何の制限もなくあなたが望むものを実装することができるという利点があります。 –

+1

私は、答えの中で私の代わりに実装を書くことを期待していませんでした:-)。 IsBusyにバインドするというアイデアを見つけられなかっただけでも簡単でした... –

関連する問題